LeetCode–0~n-1中缺失的數字
阿新 • • 發佈:2020-08-07
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
以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計劃