1. 程式人生 > 實用技巧 >LeetCode–0~n-1中缺失的數字

LeetCode–0~n-1中缺失的數字

LeetCode–0~n-1中缺失的數字

部落格說明

文章所涉及的資料來自網際網路整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯絡本人刪除,謝謝!

說明

劍指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

Java

思路

判斷下標是否為當前的數,不是直接返回

程式碼
class Solution {
    public int missingNumber(int[] nums) {
        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; 
        int j = nums.length - 1;
        while(i <= j){
            int m = (i+j)/2;
            if(nums[m] == m){
                i = m + 1;
            }else{
                j = m - 1;
            }
        }
        return i;
    }
}

感謝

leetcode

以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計劃