zoukankan      html  css  js  c++  java
  • 0-n-1中缺失的数

    题目:

    一个长度为n-1的递增排序数组中所有的数字都是唯一的,并且每个数字的都在0-n-1之内。请在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。

    解答:

     1 public class Solution {
     2 
     3     public static int getMissingNumber(int[] arr, int length) {
     4         if(arr == null || length <= 0) {
     5             return -1;
     6         }
     7 
     8         int left = 0;
     9         int right = length-1;
    10         
    11         while(left <= right) {
    12             int mid = (right+left)>>1;
    13             if(arr[mid] != mid) {
    14                 if(mid == 0 || arr[mid-1] == mid-1) {
    15                     return mid
    16                 }
    17 
    18                 right = mid - 1;
    19             } else {
    20                 left = mid + 1;
    21             }
    22         }
    23 
    24         if(left == length) {
    25             return length;
    26         }
    27 
    28         return -1;
    29     } 
    30 }

  • 相关阅读:
    jquery.md5
    LoginPasswordHelp
    RSA(非对称加密算法、公钥加密算法)
    Swiper 3.4.1
    layer web 弹窗
    操作系统
    查看命令帮助
    软件卸载
    重定向命令
    终端命令格式的组成
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10476422.html
Copyright © 2011-2022 走看看