剑指 Offer 53-ll. 0~n-1中缺失的数字|刷题打卡

176 阅读1分钟

一.题目描述

一个长度为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

解题思路:

由题目中可得知,数组中的元素为递增且唯一,并且每个数字都在该范围内。那么我们可以直接暴力遍历数组,用数组的元素与当前元素的数组下标相比较,如果不等,直接返回当前数组下标。

class Solution {    public int missingNumber(int[] nums) {       for(int i=0;i<nums.length;i++){           if(nums[i]!=i){               return i;           }       }        return nums[nums.length-1]+1;    }}

此时的最坏的时间复杂度为O(n)

总结:

虽然这道题相对简单,但是能够做出来也是一种进步,嗖嗖

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情