加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读