Given an array of ints, return true if every element is a 1 or a 4. only14([1, 4, 1, 4]) → true only14([1, 4, 2, 4]) → false only14([1, 1]) → true
我提出了以下算法,它返回所有预期的答案,除了应该返回 true
的空数组:
public boolean only14(int[] nums) {
boolean flag = false;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 1 || nums[i] == 4) {
flag = true;
} else {
return false;
}
}
return flag;
}
根据解决方案,以下输入应产生 true
,但我不明白为什么:
only14([]) → true
我知道默认值为 0,那么我错过了什么,以至于我应该期望 boolean 值的返回值为 true
?
最佳答案
以下应该有效。它返回 true
除非有任何值不是 1 或 4。
public boolean only14(int[] nums) {
for (int i = 0; i < nums.length; i++) {
int val = nums[i];
if (val != 1 && val != 4) {
return false;
}
}
return true;
}
关于java - 空数组返回真?给定一个整数数组,如果每个元素都是 1 或 4,则返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39605593/