当前位置: 首页 > 面试题库 >

获取数组中n个最小元素的索引

任绪
2023-03-14
问题内容

我有一个int数组int[] myArray = new int[100];,想要获取最小10个(任何n个)元素的索引。我怎样才能做到这一点?


问题答案:

创建一个包含数字和索引的对象,然后创建这些对象的数组,然后执行Array.Sort(arrayset [],比较器)java
docs
。然后,您可以从已排序的数组中挑选出前x个项目。

编辑:像这样… [我曾经用它来根据’距离’进行排序

import java.util.Arrays;
import java.util.Comparator;

public class NearestObject
{
    public NearestObject(int position, int distance)
    {
         this.Position = position;
         this.Distance = distance;
    }
    public int Position = 0;
    public int Distance = 0;

    public static NearestObject[] SortDistance(NearestObject[] items)
    {
        Arrays.sort(items, new DistanceSort());
        return items;
    }

}

class DistanceSort implements Comparator<NearestObject>
{
    public int compare(NearestObject o1, NearestObject o2)
    {
        return o1.Distance - o2.Distance;
    }
}


 类似资料:
  • 问题内容: 做到这一点的最佳方法是什么? 问题答案: 使用 array_slice() 这是PHP手册中的一个示例:array_slice 只有一个小问题 如果数组索引对您有意义,请记住这将重置并重新排列 数字 数组索引。您需要设置标志来避免这种情况。(第4个参数,自5.0.2起可用)。 例: 输出:

  • 从提供的数组中返回 n 个最小元素。如果 n 大于或等于提供的数组长度,则返回原数组(按降序排列)。 结合使用Array.sort() 与展开操作符(...) ,创建一个数组的浅克隆,并按降序排列。 使用 Array.slice() 以获得指定的元素个数。 忽略第二个参数 n ,默认获取单个元素(以数组的形式)。 const minN = (arr, n = 1) => [...arr].sort

  • 返回数组的第n个元素。 使用 Array.slice() 获取数组的第 n 个元素。如果索引超出范围,则返回 [] 。省略第二个参数 n ,将得到数组的第一个元素。 const nthElement = (arr, n = 0) => (n > 0 ? arr.slice(n, n + 1) : arr.slice(n))[0]; nthElement(['a', 'b', 'c'], 1);

  • 问题内容: 我想知道是否有替代 使用 流 ? 问题答案: 定制收集器可以这样写: 并像这样使用它:

  • 问题内容: 我只需要找到1D中最小的第n个元素。 例如: 我想获得第五个最小的元素,所以我想要的输出是。 我当前的解决方案是这样的: 但是,找到5个最小的元素然后再选择最大的元素对我来说似乎很笨拙。有更好的方法吗?我是否缺少一个可以实现目标的功能? 有些问题的标题与此相似,但我没有看到任何答案。 编辑: 我本来应该提到它,但是性能对我来说很重要。因此,虽然不错的解决方案对我来说不起作用。 结果:

  • 问题内容: 我正在使用Javascript(ES6)/ FaceBook进行反应,并尝试获取大小变化的数组的前3个元素。我想做相当于Linq take(n)。 在我的Jsx文件中,我有以下内容: 然后得到我尝试的前三个项目 这不起作用,因为地图没有设置功能。 你能帮忙吗? 问题答案: 我相信您正在寻找的是: