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

    题目

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

    解题思路

    方式一:直接遍历数组;
    方式二:使用二分法。

    代码

    代码一:

       public int missingNumber(int[] nums) {  
        for(int i=0;i<nums.length;i++){
            if(nums[i]!=i){
                return i;
            }
        }
        return nums.length;
      }
    

    代码二:

       public int missingNumber(int[] nums) {
        int left=0;
        int right=nums.length-1;
        while (left<=right){
            int mid=left+((right-left)>>1);
            if (nums[mid]!=mid){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return left;
    }
  • 相关阅读:
    Xcode And iOS9新特性
    AutoLayout
    本地化
    Map
    iOS多线程编程
    第三方抽屉效果
    iPad编程
    CoreData / MagicalRecord
    js清除单选框所选的值
    js获取背景颜色
  • 原文地址:https://www.cnblogs.com/ghlz/p/13382049.html
Copyright © 2011-2022 走看看