当前位置: 首页 > 知识库问答 >
问题:

用1个流求数组中元素对的最大差值

方焱
2023-03-14

我试图写一个函数来找出数组(1D)中任意2个元素之间的最大差异。我已经用几种方法解决了它(我在Java中应用)

  1. 具有2个嵌套循环(工作、查找差异并取最大值)
  2. 进行1次循环迭代(工作,在返回最小值和最大值的差值:(max-min))
  3. 两次使用stream(工作,用stream的min()和max()函数查找最大值和最小值,并返回差异)。
public static int maxDifference(int[] arr) {
    return Arrays.stream(arr).min().orElseThrow(NoSuchElementException::new) -
           Arrays.stream(arr).max().orElseThrow(NoSuchElementException::new);
}

共有1个答案

鲁向明
2023-03-14

使用arrays.stream(arr).summarystatistics()-它将返回一个IntSummaryStatistics对象,该对象包含用于min和max的访问器。

 类似资料:
  • O(n^2)算法简单。有没有人对此有更好的算法?

  • 本节通过求数组的最大和最小值来提高初学者对数组的一些基本应用。 程序运行结果如下: 最高成绩:100 最低成绩:67 将变量 min 与 max 初值设成数组的第 1 个元素后,再逐一与数组中的各元素相比。比 min 小,就将该元索的值指定给 min 存放,使 min 的内容保持最小。同样,当该元素比 max 大时,就将该元素的值指定给 max 存放,使 max 的内容保持最大。for 循环执行完

  • 我需要找到数组中的一个元素和数组的k个元素的集合之间的距离的最小和,不包括那个索引。 例如: arr = {5,7,4,9} k = 2 min_sum(5)=|5-4||5-7|=3 min_sum(7) = |7-9| |7-5| = 4 min_sum(4) = |4-5| |4-7|= 4 min_sum(9) = |9-7| |9-5|= 6 因此,一个朴素的解决方案是从数组的每个元素中

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

  • 有没有一种方法可以在小于O(n^2)的时间内做到这一点。 O(nlogn)还是O(n)?

  • 本文向大家介绍JS求Number类型数组中最大元素方法,包括了JS求Number类型数组中最大元素方法的使用技巧和注意事项,需要的朋友参考一下 如何使用JS,在一个Number类型的数组里,查找最大(或最小)数呢? 以下介绍四个方法。 1. 不使用任何库函数 代码如下: 解释: 利用一个变量result来存储最大值。遍历待查找的数组,如果当前遍历的元素大于result,就把这个元素赋值给resul