leetcode简单剑指 Offer 53 - II. 0~n-1中缺失的数字
Posted qq_40707462
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode简单剑指 Offer 53 - II. 0~n-1中缺失的数字相关的知识,希望对你有一定的参考价值。
思路:二分
如果nums[n]==n
,则表示在正确的位置,不等于的话表示有缺
class Solution {
public int missingNumber(int[] nums) {
//找左边界的二分法
int left=0,right=nums.length-1;
while(left<=right){//left<right的话,[0]这种没法处理
int mid=(left+right)/2;
if(nums[mid]==mid) left=mid+1;
else right=mid-1;//不相等的话缺得肯定是前面的
}
return left;
}
}
注意边界问题,需要left<=right
而不是left<right
,否则比如[0]
,会输出left=0
,但答案应当是1
;
同理,if else 的顺序不能变,否则[0]
这种没法mid-1
以上是关于leetcode简单剑指 Offer 53 - II. 0~n-1中缺失的数字的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 53 - I. 在排序数组中查找数字 I
LeetCode(剑指 Offer)- 53 - I. 在排序数组中查找数字 I
LeetCode 剑指Offer 53 - I 在排序数组中查找数字I[二分法] HERODING的LeetCode之路