java - 使用 Java 的 HackerRank 中的 Min-Max Sum 问题(错误)
问题描述
给定五个正整数,找出可以通过将五个整数中的四个恰好相加来计算的最小值和最大值。然后将各自的最小值和最大值打印为单行的两个空格分隔的长整数。
static void miniMaxSum(int[] arr) {
int summin=0;
int summax=0;
for (int i=0; i< 5; i++) {
for (int j=4; j>i; j--) {
if(arr[i]>arr[j]){
int c=arr[i];
arr[i]=arr[j];
arr[j]=c;
}
}
}
for (int i=0; i<4; i++) {
summin=summin+arr[i];
}
for (int i=1; i<5; i++) {
summax=summax+arr[i];
}
System.out.print(summin+" "+summax);
}
我的代码只能在此处使用 5/15 个测试用例正确输入图像描述。我想对数组进行排序,然后计算结果。“min”结果是正确的,但“max”结果是负整数,所以它是错误的。我发现问题是由排序后的最后一个元素引起的。使用 Netbeans,我计算了数组中所有元素的总和。在 4 个第一个元素之后,总和仍然是正整数,但是当添加第 5 个元素时,总和变为负整数。我不知道为什么,有人可以帮我吗?
解决方案
我猜你应该使用 long as summin 和 summax,这样可以解决你的问题(你有负值,因为你的 sum max 大于 max integer value)
推荐阅读
- node.js - 提示 Node JS 后访问用户输入
- arrays - 更改数组以使两个数组之和相等的最短时间
- java - 如何在java中的scala类中访问scala对象?
- r - 如何编写一个函数,从另一个数据集中同义列的每个值中减去一个数据集中每一列的平均值?
- php - 从 qraphql 遍历数组中的数组
- python - 如何阅读此 python 字典插入的语法?
- github - 使用 Git bash 命令进行 Git 合并
- azure - 将 Azure VMSS 实例计数设置为 0,直到手动更改
- python - 如何更改 pip3 的 Python 版本
- javascript - 如何在不损坏的情况下将 HTML 字符代码插入到 fetch 请求中?