java - 空数组返回真?给定一个整数数组,如果每个元素都是 1 或 4,则返回 true

标签 java arrays boolean

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/

相关文章:

Python:仅在选定索引处对三个或更多数组的值求和

c# - 如何在 C# 中将 Cast null 类型转换为 Bool?

java - Java中默认值 'boolean'和 'Boolean'

java - java中的对象同步

java - 数据处理管道的消息传递架构

java - Jersey JAXRS 过滤器,在访问资源(Web 服务)之前提供未编码的实体

c++ - 用户输入存储在整数数组 C++ 中的值

php - Laravel验证数字多维数组

python - 以 boolean 值作为索引的数组切片

java - super.a = b 而不是 super(b)