可能是重复问题:
Java:将组中的5的倍数求和到给定目标 大家好,
我正在努力解决以下问题,但没有正确的思路。
编写一个Java函数,给定一个整数数组,能否选择其中一些整数组成一个组,使得该组的总和等于给定的目标,并满足以下附加条件:数组中所有的5的倍数必须包含在该组中。如果紧随5的倍数后面的值为1,则不能选择它。
下面是一些测试用例:
groupSum5(0, {2, 5, 10, 4}, 19) → true groupSum5(0, {2, 5, 10, 4}, 17) → true groupSum5(0, {2, 5, 10, 4}, 12) → false groupSum5(0, {3, 5, 1}, 5) → true groupSum5(0, {3, 5, 1}, 4) → false
函数签名为 public boolean groupSum5(int start, int[] nums, int target)。
我已经编写了部分代码,但有一些测试用例无法通过。
Java:将组中的5的倍数求和到给定目标 大家好,
我正在努力解决以下问题,但没有正确的思路。
编写一个Java函数,给定一个整数数组,能否选择其中一些整数组成一个组,使得该组的总和等于给定的目标,并满足以下附加条件:数组中所有的5的倍数必须包含在该组中。如果紧随5的倍数后面的值为1,则不能选择它。
下面是一些测试用例:
groupSum5(0, {2, 5, 10, 4}, 19) → true groupSum5(0, {2, 5, 10, 4}, 17) → true groupSum5(0, {2, 5, 10, 4}, 12) → false groupSum5(0, {3, 5, 1}, 5) → true groupSum5(0, {3, 5, 1}, 4) → false
函数签名为 public boolean groupSum5(int start, int[] nums, int target)。
我已经编写了部分代码,但有一些测试用例无法通过。
public boolean groupSum5(int start, int[] nums, int target) {
start = 0;
boolean flag = false;
for(int i=0;i<nums.length;i++){
if(nums[i]%5==0){
start+=nums[i];
}else if((start != target) && (start%5==0)){
start+=nums[i];
}else if(start == target){
flag = true;
return flag;
}else if((nums[i]%5==0) && (nums[i+1]==1)){
continue;
}
}
return flag;
}
即使编写了这段代码,所有测试用例仍然失败。 我已经挣扎了很长时间,但无法解决问题。
编辑:DIANTE,请提供代码修复,因为我已经尝试了这么多,不知道该怎么继续。