【发布时间】:2021-06-25 14:28:54
【问题描述】:
这是我正在解决的问题: “给定一个整数数组,是否可以选择一组整数,使得该组与这些附加约束的给定目标相加:数组中所有 5 的倍数必须包含在组中。如果紧跟在 5 的倍数之后的值是 1,不能选择它。(不需要循环。)"
我尝试了以下方法:
public boolean groupSum5(int start, int[] nums, int target) {
if (start == nums.length) return (target == 0);
if (groupSum5(start + 1, nums, target - nums[start]) && nums[start] % 5 == 0)
return true;
if (groupSum5(start + 1, nums, target)) return true;
return false;
}
但它只能得到 5 的倍数,我试过这个:
public boolean groupSum5(int start, int[] nums, int target) {
if (start == nums.length) return (target == 0);
if (groupSum5(start + 1, nums, target - nums[start]) && nums[start] % 5 == 0)
return true;
if (groupSum(start + 1, nums, target - nums[start])) return true;
if (groupSum5(start + 1, nums, target)) return true;
return false;
}
但它不起作用,因为有时不包括 5 的倍数。
我知道我的代码还没有满足第二个约束。
有什么想法吗?
【问题讨论】:
-
你能贴出样本输入预期输出吗
-
@deadshot 我发布了它。在问题编号中。