博客
关于我
剑指offer-面试题53-II:0~n-1中缺失的数字
阅读量:591 次
发布时间:2019-03-11

本文共 594 字,大约阅读时间需要 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
限制:
1 <= 数组长度 <= 10000

方法一(二分查找)

1.解题思路

二分查找很容易实现,但是细节不好把握。这道题首先要确定查找范围,0到n-1总共有n个数,但是数组中只给了n-1个数,所以查找范围为左边界low=0,右边界high=数组长度(n-1);然后是二分策略,当下标等于当前值时,肯定不是要找的数,左边界后移(low=mid+1),当下标不等于当前值时,可能是要找的数,也可能要找的数在左边,所以缩小右边界的同时,要包含当前下标(high=mid)。

2代码实现

class Solution {       public int missingNumber(int[] nums) {           int low=0,high=nums.length;        while(low

3.复杂度分析

  • 时间复杂度:需要进行logn次二分,所以时间复杂度为O(logn)。
  • 空间复杂度:不需要额外的内存空间,所以空间复杂度为O(1)。

剑指offer全集入口:

转载地址:http://bsjtz.baihongyu.com/

你可能感兴趣的文章
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置多个不同端口服务共用80端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-动静分离实例:搭建静态资源服务器
查看>>
Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
查看>>
Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置自带的stub状态实现活动监控指标
查看>>
Nginx配置详解
查看>>
nginx配置详解、端口重定向和504
查看>>
nginx配置负载均衡
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
Nginx配置限流,技能拉满!
查看>>
Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias
查看>>
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
查看>>