在Scala中查找数组中前n个元素的索引

时间:2017-12-15 19:56:27

标签: scala

我有一个无序的数组[Int]。如何从中找到前n个元素的索引?

例如

Input:
Array[Int] = Array(1,4,2,8,5,3,1,4,2)
top_n = 3

Output:
1,4,5

2 个答案:

答案 0 :(得分:4)

我想你要求3个最高数字的指数? 你可以使用这样的东西:

arr.zipWithIndex.sortBy(_._1).takeRight(3).map(_._2)

答案 1 :(得分:2)

我猜你所描述的输出是错误的,所以我想这里它应该是(1,3,4)。这是一个使用zipWithIndex

的解决方案
val values = Array(1,4,2,8,5,3,1,4,2)
val n = 3
values.zipWithIndex.sortBy(-_._1).take(n).map(_._2)

返回

res2: Array[Int] = Array(3, 4, 1)