我为以下问题陈述制作了一个java程序 -
"将一组数字分成两组,使每组中的元素总和必须相等"
输入:整数数组
输出:
"是" -if set可分为两个相等的总和,
"否" -if不能分成两个相等的和,
"无效" -if整数数组包含任何其他类型的整数(正整数除外)
并且我已经将代码提交给在线编译器,并且我编写的代码已经通过了8个测试用例。我努力但是我无法成功找到那两个失败的测试用例。失败的那两个测试用例是什么?这是代码 -
public class CandidateCode {
public static String partition(int[] arr) {
int sum = getSum(arr);
int half = sum / 2;
int out = 0;
int i = 0;
boolean flag = false;
if (hasZero(arr)) {
return "Invalid";
}
if (sum % 2 != 0) {
return "No";
}
if (arr.length == 2) {
if (arr[0] == arr[1]) {
return "Yes";
}
return "No";
}
else {
while (i < arr.length) {
if (arr[i] < half)
out += arr[i];
if (out == half) {
flag = true;
break;
}
i++;
}
}
if (flag)
return "Yes";
else
return "No";
}
public static int getSum(int[] arr) {
int result = 0;
for (int i = 0; i < arr.length; i++) {
result += arr[i];
}
return result;
}
public static boolean hasZero(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] <= 0) {
return true;
}
}
return false;
}
}
答案 0 :(得分:0)
一个失败的测试用例是由以下组成的数组:
4 8 4