java - 如何识别布尔数组元素是否已更改?
问题描述
我正在尝试检查我的代码是否已将特定的布尔变量明确设置为 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;
}
解决方案
boolean
是原始类型。java中的原始类型永远不会为空。默认情况下,布尔值设置为false
.
如果要利用 null,请使用 Boolean 类
例如:
Boolean b[] = new Boolean[N+1];
然后,
if(b[N] != null)//
会为你工作
推荐阅读
- android - 我无法从 android 的 firebase 数据库中获取用户数据?
- java - 如何以编程方式在 Android 上获取边框高度和宽度
- c++ - C++ getIntArrayAverage
- c++ - 在包含 hex 和 char 的 char 数组上实现 MD5 哈希
- python - Pygame 处理 Python/Pygame Spritesheet (MacBook) 的问题
- r - 需要帮助在 R 中循环连接
- clang - 编译前使用 llvm-link
- mysql - MySQL UNION 创建奇怪的结果
- c# - UWP中的多选Listview功能
- javascript - 无法在 REST API 之外使用 Mongoose 查询 MongoDB