21xrx.com
2024-11-22 07:56:21 Friday
登录
文章检索 我的文章 写文章
Java中如何寻找数组中最大的n个数及其位置
2023-06-18 01:18:48 深夜i     --     --
Java语言 数组 最大的n个数

在使用Java进行编程开发中,寻找数组中最大的n个数及其位置是一项必不可少的任务。这里我们将介绍一些使用Java语言寻找数组中最大的n个数及其位置的方法。

首先,可以使用一个for循环遍历整个数组,同时维护一个大小为n的新数组。当遍历到一个元素时,判断它是否比新数组中最小的元素还要大。如果是,则将这个元素插入新数组中,并将新数组中最小的元素删除。最终,我们遍历完整个数组后,新数组中即为原数组中最大的n个数。

代码示例:


public static int[] findMaxN(int[] arr, int n) {

  int[] res = new int[n];

  for (int i = 0; i < n; i++) {

    res[i] = Integer.MIN_VALUE;

  }

  for (int i = 0; i < arr.length; i++) {

    for (int j = 0; j < n; j++) {

      if (arr[i] > res[j]) {

        for (int k = n - 1; k > j; k--) {

          res[k] = res[k - 1];

        }

        res[j] = arr[i];

        break;

      }

    }

  }

  return res;

}

另外,我们还需要找到原数组中最大的n个数在原数组中的位置。这里我们可以建立一个哈希表,将原数组中的值作为键,将它们在原数组中的位置作为值。然后,我们可以对新数组中的每个元素在哈希表中查找其对应的位置即可。

代码示例:


public static Map > findMaxNPosition(int[] arr, int[] res) {

  Map > map = new HashMap<>();

  for (int i = 0; i < arr.length; i++) {

    if (map.containsKey(arr[i])) {

      map.get(arr[i]).add(i);

    } else {

      List list = new ArrayList<>();

      list.add(i);

      map.put(arr[i], list);

    }

  }

  Map > resMap = new LinkedHashMap<>();

  for (int i : res) {

    List list = map.get(i);

    resMap.put(i, list);

  }

  return resMap;

}

本文介绍了两种使用Java语言寻找数组中最大的n个数及其位置的方法。通过代码实现,我们可以轻松地找到数组中最大的n个数及其位置,为我们的开发工作提供了巨大的便利。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复