有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在整数数组中查找缺少的数字

我得到了一个假定连续的数组,如下所示:

{4,5,7,8,9,10} // missing 6

我应该能有效地找到失踪的6号

我想做一个二进制搜索,并检查mid+1,mid-1

但我一直认为会有很多基本情况。我一直失败

这本不应该是一个很难解决的问题,但我不知道为什么我会这么努力:/

有人能引导我通过这个吗

谢谢你,伙计


共 (2) 个答案

  1. # 1 楼答案

    在一个线性过程中,找到最小元素、最大元素和所有元素之和

    知道最小值和最大值后,如果没有遗漏任何值(这是一个算术级数的和),就可以计算出所有数字的和。从中减去实际总数将得到缺少的数字

  2. # 2 楼答案

    总是keep it simple哥们。您总是可以在N时间复杂度内完成此操作

    int[] arr = new int[]{4,5,7,8,9,10};
            int missing=0;
            for(int i=0;i<arr.length;i++)
            {  
    
                int x = arr[++i];
                int y = arr[i] +1;
    
              if(x != y )
              {
                  missing = y;
                  break;
              }
            }
    
            System.out.println(missing);