【发布时间】:2022-01-25 08:04:47
【问题描述】:
关于黑客等级有一个非常著名且简单的问题,如下所示:
给定五个正整数,找出可以通过将五个整数中的四个恰好相加来计算的最小值和最大值。然后将各自的最小值和最大值打印为单行的两个空格分隔的长整数。 示例 arr = [1,3,5,7,9] 最小和为 1+3+5+7=16,最大和为 3+5+7+9=24。
现在,我解决了这个问题:
long max = Collections.max(intList);
long min = Collections.min(intList);
long sum = intList.stream().mapToInt(Integer::intValue).sum();
System.out.println((sum-max)+" "+(sum-min));
它有效,但缺少 3 个测试用例。有什么建议或可以改进的地方吗?我正在努力提高我的编程技能,这是我在完全理解之前不想放手的事情。
谢谢!
编辑
这是改进后的代码以及任何正在寻找的人的答案:
long max = Collections.max(arr);
long min = Collections.min(arr);
long sum = arr.stream().mapToLong(Integer::longValue).sum();
System.out.println((sum-max)+" "+(sum-min));
【问题讨论】:
标签: java algorithm arraylist data-structures