2010-05-21 21 views
12

Decir que tengo una lista val list = List(34, 11, 98, 56, 43).¿Cómo encontrar el índice del elemento con un valor mínimo?

Ahora, ¿cómo puedo encontrar el índice del elemento mínimo de la lista (por ejemplo, 1 en este caso)?

+0

Es una tarea. Creo que es muy fácil de hacer – vodkhang

+2

Es un problema de tarea extremadamente simple. – Odrade

+2

@ vodkhang y @Odrade, me gradué 10 años. No nos enseñaron programación funcional en nuestra universidad. De ahí esas preguntas que hacen sonar las tareas. :( – Surya

Respuesta

23

En Scala 2.8:

List(34, 11, 98, 56, 43).zipWithIndex.min._2 
6

Una lista vacía no tiene un valor mínimo. Una lista de un solo elemento tiene ese elemento como mínimo. Para todas las otras listas, el mínimo es el primer elemento de esa lista o el mínimo del resto de la lista, según cuál sea mayor.

Para encontrar el índice esto se convierte en: Para una lista de longitud 1 el índice del mínimo es 0. Si la lista tiene más de un elemento y el mínimo de la cola es mayor que la cabeza, también es 0. Si la cabeza es mayor, entonces el índice es el índice del mínimo de la cola más uno.

6

supongo que la forma más fácil es list.indexOf(list.min). Lanzará una excepción cuando la lista esté vacía, aunque también lo hará la respuesta de Daniel.

Cuestiones relacionadas