Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找数组中缺少的元素_Java - Fatal编程技术网

Java 查找数组中缺少的元素

Java 查找数组中缺少的元素,java,Java,我的程序是:在一个数组中,存储1-10个数字,缺少一个数字,你怎么找到它 我尝试了下面的代码,但没有给出正确的输出 public class MissingNumber { public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 9, 9, 10 }; System.out.println(arr.length); int arr2[] =

我的程序是:在一个数组中,存储1-10个数字,缺少一个数字,你怎么找到它

我尝试了下面的代码,但没有给出正确的输出

public class MissingNumber {

    public static void main(String[] args) {

        int arr[] = { 1, 2, 3, 4, 5, 6, 7, 9, 9, 10 };
        System.out.println(arr.length);

        int arr2[] = new int[10];

        for (int i = 0; i < arr2.length; i++) {

            arr2[i] = i + 1;
            System.out.println("second array is : " + arr2[i]);
        }

        //compare two arrays i.e arr and arr2

        for(int a=0;a<arr.length;a++){
            for(int b=0;b<arr2.length;b++){
                 if(arr[a]==arr2[b]){
                     break;
                 }
                 else{
                     System.out.println("missing element is : "+arr[a]);
                 }

            }
        }

    }

}
公共类丢失编号{
公共静态void main(字符串[]args){
int arr[]={1,2,3,4,5,6,7,9,9,10};
系统输出打印长度(arr.length);
int arr2[]=新int[10];
for(int i=0;i对于(int a=0;a当两个数组匹配时,您将从循环中中断。从您的逻辑角度来看,将其更改为(您不需要嵌套循环):

但如果确定数组从1开始始终按顺序排列,则不需要另一个数组。只需按照以下步骤操作:

for(int x=0; x<arr.lengthl x++){
    if(arr[x] != (x+1)){
        System.out.println("Missing element is " + (x+1));
        break;
    }
}

for(int x=0;x当您找到正确的匹配项时,您刚刚破坏了代码:

只需使用以下命令:

if(arr[a] != arr2[b]){
    System.out.println("missing element is : "+arr[a]);
    break;
}

或者用continue替换break

删除第二个数组,您不需要它,并且在向原始数组添加元素后可能会导致错误

基本上,将测试替换为:

if(arr[a] != (a+1)){ System.out.println("Missing element: " + (a+1)); }

不要打断它,因为可能会丢失更多的元素。

它不起作用,因为您正在
arr
中循环寻找任何不在
arr2
中的值,而
arr
中的每个元素都在
arr2
中。您希望
arr2
作为外循环

我的程序是:在一个数组中,存储1-10个数字,缺少一个数字,你怎么找到它

也可以只使用数组本身来完成。请注意,只有当这个问题中指定的某个数字缺失时,它才起作用

比如说,

设数组为
Array={1,2,3,4,5,6,7,9,9,10}

现在,让我们假设数组并不总是被排序的,因此第一步是对数组进行排序

Arrays.sort(array);
下一步是简单地检查数组在任何给定位置的值,如果
值!=location+1
,那么这就是缺少的数字

for(int x = 0; x < array.length; x++) {
    if(array[x] != x + 1) {
        System.out.println("Missing Entry: " + (x+1));
        break;
    }
}
for(int x=0;x
检查下面的代码,查看输入数组是否为任意顺序或无序排列

公共类丢失号{

public static void main(String[] args) {

    int arr[] = {1, 2, 3, 4, 5, 6, 7, 9, 9, 10};
    System.out.println(arr.length);

    int arr2[] = new int[10];

    for (int i = 0; i < arr2.length; i++) {
        arr2[i] = i + 1;
    }
    for (int a = 0; a < arr2.length; a++) {
        int count = 0;
        for (int b = 0; b < arr.length; b++) {
            if (arr2[a] == arr[b]) {
                break;
            } else {
                count++;
            }
        }
        if (arr2.length == count) {
            System.out.println("missing element is : " + arr2[a]);
        }
    }

}
publicstaticvoidmain(字符串[]args){
int arr[]={1,2,3,4,5,6,7,9,9,10};
系统输出打印长度(arr.length);
int arr2[]=新int[10];
for(int i=0;i

}

为什么不只是:if(arr[a]!=(a+1))?它可以工作。谢谢!@naazneen3264问题不清楚,你甚至不需要一个循环就可以找到“丢失的”数字。你的数组总是从1开始,并且应该以递增的顺序排列吗?是的。我后来意识到。它不起作用。但第二部分起作用了。事实上,我拿了两个数组,试图找到丢失的元素。卡斯帕:在什么情况下,你认为这条打印线会到达?是的,在我写下它后的第二秒我意识到:p
public static void main(String[] args) {

    int arr[] = {1, 2, 3, 4, 5, 6, 7, 9, 9, 10};
    System.out.println(arr.length);

    int arr2[] = new int[10];

    for (int i = 0; i < arr2.length; i++) {
        arr2[i] = i + 1;
    }
    for (int a = 0; a < arr2.length; a++) {
        int count = 0;
        for (int b = 0; b < arr.length; b++) {
            if (arr2[a] == arr[b]) {
                break;
            } else {
                count++;
            }
        }
        if (arr2.length == count) {
            System.out.println("missing element is : " + arr2[a]);
        }
    }

}