java - 使用 Java 流从 int 数组中获取缺失的数字
问题描述
我有以下数组,
int [] a = {5,3,10,8,4,2,9,6};
我正在尝试从 tha 数组中获取丢失的数字,
private static int getMissingNumber(int[] a) {
int expectedSum = IntStream.rangeClosed(1, 10)
.reduce(0, Integer::sum);
int actualSum = Arrays.stream(a).reduce(0, Integer::sum);
return expectedSum-actualSum;
}
但是得到 8 而不是 7。我在这里错过了什么?
解决方案
你的最小值2
应该是范围的开始IntStream.rangeClosed(2, 10)
也可以直接.sum()
调用IntStream
private static int getMissingNumber(int[] a) {
return IntStream.rangeClosed(2, 10).sum() - Arrays.stream(a).sum();
}
推荐阅读
- c++ - 如何定义可变参数宏来初始化联合?
- html - 更改背景颜色 FullCalender 反应
- android - 如何在 Android 上阻止蓝牙配置文件?
- react-native - 动态添加解析器以响应钩子形式?
- javascript - Firebase AppCheck - Web 应用程序无法在调试模式下运行
- c++ - 如何修复尺寸错误?
- python - 谱聚类相似矩阵的实现
- android - AlarmManager.setRepeating 长时间延迟后发出警报(近 10 分钟)
- java - MvcResult 返回 application/json;charset=UTF-8
- excel - 将 txt 文件导入 Google Sheet 的脚本(基于现有的 VBA)