java - 检查数组是否至少有两个具有特定值的元素

标签 java arrays loops

假设我有一个包含以下值的数组:0,1,0,0,0,1,0,1,1

我目前正在遍历我的数组并将 1 替换为 0。但是,如果我的数组中还剩下 2 个 1,我会跳出这个循环。我在代码方面确实没有太多,但这是我一直在做的事情的 stub

if(//There are more than 2 1s ){
        return true; //carry on looping
    }

    return false; //break the loop

我不知道如何区分 0 和 1,所以我很困惑如何让它工作。任何想法将不胜感激。

最佳答案

一个可能的解决方案是首先编写一个实用方法来测试特定位置的给定值是否与数组中的每个后续位置都是唯一的,例如,

private static boolean testUnique(int[] arr, int i) {
    int t = arr[i];
    for (int j = i + 1; j < arr.length; j++) {
        if (arr[j] == t) {
            return false;
        }
    }
    return true;
}

然后你可以从左到右遍历数组,检查每个值是否都是唯一的

public static boolean hasDuplicate(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
        if (!testUnique(arr, i)) {
            return false;
        }
    }
    return true;
}

使用你的数组,

public static void main(String[] args) {
    int[] arr = { 0, 1, 0, 0, 0, 1, 0, 1, 1 };
    System.out.println(hasDuplicate(arr));
}

那是。或者,如果先对数组进行排序,您可能会发现它更容易。

关于java - 检查数组是否至少有两个具有特定值的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26853802/

相关文章:

java - 在Java中管理错误日志

java - java中Paint循环出现问题

java - 如何避免这种无限的 do-while 循环?

java - 带有 $in 和正则表达式列表的 Spring Data MongoDB 标准

java - 如何使用Intent提示删除联系人

java - 根据用户需要自动创建新变量

sql - JSONB 排序聚合

python - 在 python 中仅使用 for 循环模拟 while 循环

java - 如何打开 .class 文件?

c++ - 我怎么知道指向基类对象的指针数组中元素的类型是什么,它将为派生类分配内存