剑指 Offer 53 - II. 0~n-1中缺失的数字
程序员文章站
2024-03-07 21:54:03
...
题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
思路:排序数组的解法其实一般使用二分、双指针比较多,但是对于这道题,所有数字都是唯一而且是递增排列,因此,我们可以直接比较这个数组的值和这个位置即可。另外需要搞清楚题目的条件,我因为没理解题意,边界出了问题。题目的意思是,咱们有一个数组,长度就是n,数组是从0-n-1依次排的,个数是n个;那么题目的意思就是在0到n的中有且只有一个数字不存在,找出这个数字,看清楚了是0-n(长度)。
class Solution {
public int missingNumber(int[] nums) {
int res = -1;
boolean flag = false;
for(int i=0;i<nums.length;i++){
if(nums[i] != i){
res = i;
flag = true;
break;
}
}
if(flag){
return res;
}else{
return nums.length;
}
}
}
推荐阅读
-
剑指 Offer 53 - II. 0~n-1中缺失的数字
-
[leetCode]剑指 Offer 53 - II. 0~n-1中缺失的数字
-
[LeetCode]剑指 Offer 53 - II. 0~n-1中缺失的数字
-
Leetcode 剑指 Offer 53 - II. 0~n-1中缺失的数字
-
剑指offer【53】:0~n-1数组缺失值
-
【剑指 Offer 53 - II】0~n-1中缺失的数字
-
剑指offer书(53)-2:0-n-1中缺失的数字
-
剑指OFFER----53-2、0~n-1中缺失的数字(js实现)
-
剑指 Offer 53 - II. 0~n-1中缺失的数字
-
剑指offer 53 - II. 0~n-1中缺失的数字