首页 > 解决方案 > 如何识别布尔数组元素是否已更改?

问题描述

我正在尝试检查我的代码是否已将特定的布尔变量明确设置为 true 或 false。

默认情况下,布尔数组初始化为 false。所以我不能用它来验证我以前的状态是 DP 问题的一部分。我想有一个包含所有修改元素索引的集合。但我想知道是否有更优雅的方式来做到这一点。另一种方法可能是停止默认初始化,尽管我似乎找不到如何做到这一点。

public static boolean testMethod(int N) {
    boolean b[] = new boolean[N+1];
    return canWin(N,b);
}
public static boolean SubMethod(int N, boolean[] b){
    if(b[N] != null)// This is where I want to check(null check does not work)
        return b[N];

    for(int i = 1; i<= N/2; i++){
        if(N%i == 0){
            if(!SubMethod(N-i, b)){
                b[N] = true;
                return true;
            }
        }
    }
    b[N] = false;
    return false;
}

标签: java

解决方案


boolean是原始类型。java中的原始类型永远不会为空。默认情况下,布尔值设置为false.

如果要利用 null,请使用 Boolean 类

例如:

Boolean b[] = new Boolean[N+1];

然后,

if(b[N] != null)//

会为你工作


推荐阅读