LeetCode–0~n-1中缺失的數字
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!
說明
劍指offer,53-II
題目
一個長度為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
以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計划
