B C*_*nyn 3 java arrays optimization recursion
我试图递归地解决这个算法; 我想检查数组中的所有值是否相同(或彼此相等).如果所有值都相等,则返回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);
}
Run Code Online (Sandbox Code Playgroud)
更改
return allEqual(a, start++, end);
Run Code Online (Sandbox Code Playgroud)
至
return allEqual(a, start+1, end);
Run Code Online (Sandbox Code Playgroud)
start++将原始值传递start给递归调用(这是post增量运算符返回的值),因此你的递归永远不会结束,你可能会得到一个StackOverflowError.
| 归档时间: |
|
| 查看次数: |
2941 次 |
| 最近记录: |