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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM