Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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_Arrays - Fatal编程技术网

如何在Java中查找整数数组中缺少的数字?

如何在Java中查找整数数组中缺少的数字?,java,arrays,Java,Arrays,我无法在Java中找到解决方案。我需要编写一段代码,其中包含一个整数n和一个整数数组,该数组中的数字最多为n(有些可能缺失),该方法将打印出缺失的数字 例:{2;3;5;1;2;3}应该打印出4,6 编辑:这是我从评论建议中得到的,但它似乎不起作用。我做错了什么 public static void findMissingNum(int n, int[]a) { boolean A[] = new boolean[n]; for(int i = 0;

我无法在Java中找到解决方案。我需要编写一段代码,其中包含一个整数n和一个整数数组,该数组中的数字最多为n(有些可能缺失),该方法将打印出缺失的数字

例:{2;3;5;1;2;3}应该打印出4,6

编辑:这是我从评论建议中得到的,但它似乎不起作用。我做错了什么

      public static void findMissingNum(int n, int[]a) { 
         boolean A[] = new boolean[n];
       for(int i = 0; i < a.length; i++) { 
              A[a[i]] = true;
         }

      for(int j = 0; j < A.length; j++) { 

         if (A[j] = false) {System.out.print(A[j]);}


       }


    }
publicstaticvoidfindmisingnum(int n,int[]a){
布尔A[]=新布尔[n];
对于(inti=0;i
我以前见过这个问题被用作家庭作业或测验题,这个问题要求你使用一个。为列表中的每个数字创建一个大小为
n
的空布尔数组,并将
数组[num]
设置为
True
。循环新数组,并记录所有的
False
,您可以提前知道应该有多少个实例。

我以前见过这被用作家庭作业或测验题,这个问题要求您使用一个。为列表中的每个数字创建一个大小为
n
的空布尔数组,并将
数组[num]
设置为
True
。循环新数组,并记录
False
的所有实例,您可以提前知道应该有多少实例。

尝试用Java实现此解决方案:

  • 创建第二个布尔数组
    A=[0,…,n]
    。使用
    false
    值初始化它
  • 迭代输入数组:
    将i=0转换为长度(inputArray):A[inputArray[i]]:=true
  • 检查数组中哪些索引具有值
    false
    ,这些是您要返回的值

  • 尝试用Java实现此解决方案:

  • 创建第二个布尔数组
    A=[0,…,n]
    。使用
    false
    值初始化它
  • 迭代输入数组:
    将i=0转换为长度(inputArray):A[inputArray[i]]:=true
  • 检查数组中哪些索引具有值
    false
    ,这些是您要返回的值

  • 以下几点应该起作用:

    public void find() { 
            Scanner s = new Scanner(System.in);
            int[] nums = {2, 3, 5, 1, 2, 3};
            int n = s.nextInt();
            boolean[] included = new boolean[n+1]; 
    
            for(int i = 0; i < nums.length; i++) included[nums[i]] = true;
            for(int z = 0; z < included.length; z++) {
                if(included[z] == false) System.out.print(z+ ",");
    
            }
        }
    
    public void find(){
    扫描仪s=新的扫描仪(System.in);
    int[]nums={2,3,5,1,2,3};
    int n=s.nextInt();
    布尔值[]包含=新布尔值[n+1];
    对于(int i=0;i
    这将打印出所有缺失的数字,包括n(如果缺失)。如果不包括n,则执行
    new boolean[n]


    它的工作方式是首先使用扫描器读取您的int n。它有两个数组,一个包含数字的int数组和一个作为一组标志的布尔数组。布尔数组被初始化为n的大小。然后它在nums数组中循环,查看数组中包含哪些数字。如果包含该数字,则布尔arary中的该数字元素将标记为true。最后,它循环遍历flags/boolean数组,如果该标志处的元素为true,则不执行任何操作,因为它已经存在,否则如果它为false(表示不包含#),则打印它

    以下方法应该有效:

    public void find() { 
            Scanner s = new Scanner(System.in);
            int[] nums = {2, 3, 5, 1, 2, 3};
            int n = s.nextInt();
            boolean[] included = new boolean[n+1]; 
    
            for(int i = 0; i < nums.length; i++) included[nums[i]] = true;
            for(int z = 0; z < included.length; z++) {
                if(included[z] == false) System.out.print(z+ ",");
    
            }
        }
    
    public void find(){
    扫描仪s=新的扫描仪(System.in);
    int[]nums={2,3,5,1,2,3};
    int n=s.nextInt();
    布尔值[]包含=新布尔值[n+1];
    对于(int i=0;i
    这将打印出所有缺失的数字,包括n(如果缺失)。如果不包括n,则执行
    new boolean[n]


    它的工作方式是首先使用扫描器读取您的int n。它有两个数组,一个包含数字的int数组和一个作为一组标志的布尔数组。布尔数组被初始化为n的大小。然后它在nums数组中循环,查看数组中包含哪些数字。如果包含该数字,则布尔arary中的该数字元素将标记为true。最后,它循环遍历flags/boolean数组,如果该标志处的元素为true,则不执行任何操作,因为它已经存在,否则如果它为false(表示不包含#),则打印它

    ListList=Arrays.asList(yourray)


    然后,您可以创建一个从1到n的数组,按顺序排列所有数字,并遍历其元素,检查每个元素是否包含,如果不包含,则将其添加到另一个missingValues列表中。

    listlist=Arrays.asList(yourArray)


    然后,您只需创建一个从1到n的数组,所有数字都按顺序排列,然后遍历其元素,检查列表中是否包含每个元素,如果不包含,则将其添加到另一个missingValues列表中。

    数组中的元素是否按顺序排列?数组中是否已经有空元素用于缺少的#s?我认为您应该开始阅读一些Java教程(如果您知道Java基础知识,请转到数组)否,例如{2;3;5;1;2;3}应该打印出4,6@RSTAnce把它加到身体上我知道数组的基本知识,正是这个特殊的问题让我停滞不前,我找不到任何参考或方法,甚至接近它数组中的元素是按顺序排列的吗?数组中是否已经有空元素用于缺少的#s?我认为您应该开始阅读一些Java教程(如果您知道Java基础知识,请转到数组)否,例如{2;3;5;1;2;3}应该打印出4,6@RSTAnce把它加到身体上我知道数组的基本知识,正是这个具体的问题让我停滞不前,我无法找到任何与之接近的参考或方法