Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

226
Vistas
¿Cómo devolver múltiples elementos de la colección?

En la lista necesito reemplazar cada elemento con la suma de este elemento y todos los anteriores. El primer elemento no está obligado a cambiar. Ejemplo: La lista (1.0, 2.0, 3.0, 4.0) debe convertirse (1.0, 3.0, 6.0, 10.0). Estoy buscando la forma más concisa y correcta.

Estuve googleando mucho tiempo y no pude encontrar ninguna información útil respecto a la conversión de un elemento por la suma de sus anteriores. Además, no pude encontrar la función requerida en la biblioteca estándar en Kotlinlang.org. Por favor ayuda a resolver este problema.

 fun accumulate(list: MutableList<Double>): MutableList<Double> { if (list.isEmpty()) return list else for (i in 0 until list.size) { if (i == list.indexOf(list.first())) list[i] = list.first() else list[i] = list.sumByDouble { it } // here's my problem } return list }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Tienes que usar una variable que almacene la suma acumulada.

 fun accumulate(list: MutableList<Double>): MutableList<Double> { var runningSum = 0.0 list.indices.forEach { i -> runningSum += list[i] list[i] = runningSum } return list }

Tenga en cuenta que una lista vacía no es un caso especial para este código.

Si prefiere hacerlo de la manera FP y transformar la lista de forma no destructiva, puede escribir esto:

 fun accumulate(list: List<Double>): List<Double> { var runningSum = 0.0 return list.map { runningSum += it runningSum } }
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes escribir esto de manera más simple usando slice() y sum() :

 fun accumulate(list: MutableList<Double>) = list.mapIndexed { index, d -> list.slice(0..index).sum() }.toMutableList()
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda