2010-05-21 16 views
12

Dire que j'ai une liste val list = List(34, 11, 98, 56, 43).Comment trouver l'index d'un élément avec une valeur minimale?

Maintenant, comment puis-je trouver l'indice de l'élément minimum de la liste (par exemple 1 dans ce cas)?

+0

Est-ce un devoir? Je pense que c'est trop facile à faire – vodkhang

+2

C'est un problème de devoirs extrêmement simple. – Odrade

+2

@vodkhang et @Odrade, je suis diplômé 10 ans aller. Ils ne nous ont pas appris la programmation fonctionnelle dans notre université. D'où ces questions de devoirs. :( – Surya

Répondre

23

Sur Scala 2.8:

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

Une liste vide n'a pas de valeur minimale. Une liste d'un seul élément a cet élément comme minimum. Pour toutes les autres listes, le minimum est le premier élément de cette liste ou le minimum du reste de la liste, selon ce qui est le plus grand. Donc, pour trouver l'index, cela devient: Pour une liste de longueur 1, l'index du minimum est 0. Si la liste a plus d'un élément et que le minimum de la queue est supérieur à la tête, c'est aussi 0. Si la tête est plus grande alors l'index est l'indice du minimum de la queue plus un.

6

Je suppose que la façon la plus simple est list.indexOf(list.min). Il lèvera une exception quand la liste est vide, bien que la réponse de Daniel le soit aussi.

Questions connexes