在Scala中查找数组中前n个元素的索引
我有一个无序数组[Int]。如何从中找到前n个元素的索引 比如说在Scala中查找数组中前n个元素的索引,scala,Scala,我有一个无序数组[Int]。如何从中找到前n个元素的索引 比如说 Input: Array[Int] = Array(1,4,2,8,5,3,1,4,2) top_n = 3 Output: 1,4,5 我想你是在问3个最高数字的指数? 您可以使用以下内容: arr.zipWithIndex.sortBy(_._1).takeRight(3).map(_._2) 我想你是在问3个最高数字的指数? 您可以使用以下内容: arr.zipWithIndex.sortBy(_._1).takeRi
Input:
Array[Int] = Array(1,4,2,8,5,3,1,4,2)
top_n = 3
Output:
1,4,5
我想你是在问3个最高数字的指数? 您可以使用以下内容:
arr.zipWithIndex.sortBy(_._1).takeRight(3).map(_._2)
我想你是在问3个最高数字的指数? 您可以使用以下内容:
arr.zipWithIndex.sortBy(_._1).takeRight(3).map(_._2)
我猜您描述的输出是错误的,所以我想这里应该是(1,3,4)。下面是一个使用zipWithIndex的sraightforward解决方案
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)
我猜您描述的输出是错误的,所以我想这里应该是(1,3,4)。下面是一个使用zipWithIndex的sraightforward解决方案
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)
你如何确定前n名?逻辑是什么?你是如何确定top n的?逻辑是什么?