作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
请看代码说说你的看法即使在我的调试器上它也显示 102 == 102 给我 false ...你能想象吗?
import java.util.Arrays;
/**
* Created by Idris on 18/11/14.
*/
public class codingGame {
static boolean exists(int[] ints, int k) {
Integer j = ints[ints.length/2];
if (j.equals(k)){
return true;
}
if (ints.length == 1) return false;
if (k > j ) {
int[] intb = Arrays.copyOfRange(ints, ints.length/2, ints.length);
exists(intb, k);
}
if (k < j ) {
int[] intb = Arrays.copyOfRange(ints, 0, ints.length/2);
exists(intb, k);
}
return false;
}
public static void main (String[] args) {
int[] ints = {-9, 14, 37, 102};
System.out.println(exists(ints, 102)); // true
System.out.println(exists(ints, 36)); // false
}
}
最佳答案
您忘记了您是关于递归的 return
语句。您需要使用return exists(intb, k);
来返回递归内可能出现的true,否则如果j.equals(k)
,代码将始终返回false > 是错误的。
static boolean exists(int[] ints, int k) {
Integer j = ints[ints.length/2];
if (j.equals(k)){
return true;
}
if (ints.length == 1) return false;
if (k > j ) {
int[] intb = Arrays.copyOfRange(ints, ints.length/2, ints.length);
return exists(intb, k);
}
if (k < j ) {
int[] intb = Arrays.copyOfRange(ints, 0, ints.length/2);
return exists(intb, k);
}
return false;
}
关于java - 令人难以置信的 Java 相等测试错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003803/
我在 Spring (3.0.1.RELEASE)、TestNG (5.11) 和 Maven Surefire (2.5) 中遇到了一个非常奇怪的问题。 我有一个测试类,它扩展了 testNG 的
我是一名优秀的程序员,十分优秀!