java – 如何使用递归检查数组中的所有值是否相等?
发布时间:2020-12-15 04:46:12 所属栏目:Java 来源:网络整理
导读:我试图递归地解决这个算法;我想检查数组中的所有值是否相同(或彼此相等).如果所有值都相等,则返回true,如果不相等,则返回false.我的代码没有通过任何测试. public boolean allEqual(int[] a,int start,int end){ if (start end) return false; if (a.length=
我试图递归地解决这个算法;我想检查数组中的所有值是否相同(或彼此相等).如果所有值都相等,则返回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,end); 至 return allEqual(a,start+1,end); start将start的原始值传递给递归调用(这是post increment operator返回的),因此你的递归永远不会结束,你可能会得到一个StackOverflowError. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |