我正在尝试递归地解决这个算法;我想检查数组中的所有值是否相同(或彼此相等)。如果所有值都相等,则返回 true,否则返回 false。我的代码没有通过任何测试。
public boolean allEqual(int[] a, int start, int end){
if (start > end) return false;
if (a.length==0) return false;
if (start==end && a[start] == a[end]) return true;
if (a[start] != a[end]){
return false;
}
return allEqual(a, start++, end);
}
最佳答案
改变
return allEqual(a, start++, end);
到
return allEqual(a, start+1, end);
start++
将 start
的原始值传递给递归调用(这是后增量运算符返回的内容),因此您的递归将永远不会结束,您可能会得到一个 堆栈溢出错误
。
关于java - 如何使用递归检查数组中的所有值是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30737327/