zoukankan      html  css  js  c++  java
  • 剑指 Offer 53

    剑指 Offer 53 - II. 0~n-1中缺失的数字

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

    示例 1:

    输入: [0,1,3]
    输出: 2

    示例 2:

    输入: [0,1,2,3,4,5,6,7,9]
    输出: 8

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    朴素遍历

    class Solution {
        public int missingNumber(int[] nums) {
            if(nums[0] == 1)  return 0;
    
            for(int i=0; i<nums.length; i++){
                if(nums[i] != i){
                    return i;     //归于递增的规律
                }
            }
            return nums.length;
        }
    }
    

    二分

    class Solution {
        public int missingNumber(int[] nums) {
            int i=0,j=nums.length-1;
    
            while(i <= j){
                int m = (i + j)/2;
                if(nums[m] == m){
                    i = m + 1;  //在左边找到
                }else{
                    j = m-1;  //在右边没找到
                }
            }
        }
    }
    
  • 相关阅读:
    North North West
    HDU-5387 Clock
    HDU-1036 Average is not Fast Enough!
    Growling Gears
    HDU-5375 Gray code
    HDU-5373 The shortest problem
    hdu-5364 Distribution money
    UVA
    HDU-5363 Key Set
    HDU-5326 Work
  • 原文地址:https://www.cnblogs.com/xiaofff/p/14239056.html
Copyright © 2011-2022 走看看