博客說明java
文章所涉及的資料來自互聯網整理和我的總結,意在於我的學習和經驗彙總,若有什麼地方侵權,請聯繫本人刪除,謝謝!數組
劍指offer,53-II學習
0~n-1中缺失的數字code
一個長度爲n-1的遞增排序數組中的全部數字都是惟一的,而且每一個數字都在範圍0~n-1以內。在範圍0~n-1內的n個數字中有且只有一個數字不在該數組中,請找出這個數字。排序
示例 1:leetcode
輸入: [0,1,3] 輸出: 2
示例 2:get
輸入: [0,1,2,3,4,5,6,7,9] 輸出: 8
判斷下標是否爲當前的數,不是直接返回博客
class Solution { public int missingNumber(int[] nums) { for(int i = 0;i<nums.length;i++){ if(nums[i] != i){ return i; } } return nums.length; } }
使用二分法io
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; } }
感謝class
leetcode
以及勤勞的本身 關注公衆號: 歸子莫,獲取更多的資料,還有更長的學習計劃