剑指 Offer 53 - II. 0~n-1中缺失的数字

  • 题目
  • 题目链接
  • 解题思路
    • 具体思路
    • 具体代码

题目

题目链接

https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/

解题思路

具体思路

这道题如果直接使用循环判断的话那就失去了他本身的意义
正确的解法应该是使用二分查找快速找出对应的数字
核心思路:min的索引 == min位置的值,但是(min + 1)的索引 !=(min + 1)位置的值,此时找到缺失的数字即 min + 1

具体代码

class Solution {public int missingNumber(int[] nums) { // 处理空数组,以及数组非 0 开始情况   if (nums == null || nums.length == 0 || nums[0] != 0) {return 0;}// 处理数组全部有序情况if (nums[nums.length - 1] == nums.length - 1) {return nums.length;}// 结果int result;// 初始化二分查找,最小值,最大值,中间值索引int min = 0, max = nums.length, mid = (min + max)/2;while(true) {// 最小值能够等于索引,但是下一位的值与索引不想等时if (nums[min] == min && nums[min + 1] != min + 1) {result = min + 1;break;}// 重新计算 min,max,mid 值if (nums[mid] == mid) {min = mid;} else {max = mid;}mid = (min + max) / 2;}return result;}
}

剑指 Offer 53 - II. 0~n-1中缺失的数字相关推荐

  1. 【算法】剑指 Offer 53 - II. 0~n-1中缺失的数字

    1.概述 剑指 Offer 53 - II. 0-n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一 ...

  2. 剑指 Offer 53 - II. 0~n-1中缺失的数字(二分查找)

    /*** 剑指 Offer 53 - II. 0-n-1中缺失的数字* @author wsq* @date 2020/10/08一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在 ...

  3. leetcode剑指 Offer 53 - II. 0~n-1中缺失的数字(二分查找)

    一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字. 示例 1: 输入: [0,1,3 ...

  4. LeetCode-剑指 Offer 53 - II. 0~n-1中缺失的数字

    剑指 Offer 53 - II. 0-n-1中缺失的数字 思路一:简单for循环找 class Solution {public:int missingNumber(vector<int> ...

  5. 剑指offer | 面试题53 - II. 0~n-1中缺失的数字

    转载本文章请标明作者和出处 本文出自<Darwin的程序空间> 本文题目和部分解题思路来源自<剑指offer>第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 一个 ...

  6. 剑指Offer - 面试题53 - II. 0~n-1中缺失的数字(二分、位运算)

    文章目录 1. 题目 2. 解题 2.1 充分利用题目信息 2.2 位运算 2.3 二分查找 1. 题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范 ...

  7. 剑指offer面试题53 - II. 0~n-1中缺失的数字(二分查找)

    题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字. 思路 详见链接 代码 ...

  8. 53 - II. 0~n-1中缺失的数字

    链接 https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/ 难度: #简单 题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且 ...

  9. 【LeetCode】剑指 Offer 53 - I. 在排序数组中查找数字 I

    [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 文章目录 [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 一.二分法 总结 一.二分法 ...

  10. 剑指offer——面试题51:数组中重复的数字

    剑指offer--面试题51:数组中重复的数字 Solution1: 20180910更新.利用数组做一次hash映射,时间复杂度为O(n)O(n)O(n),空间复杂度O(n)O(n)O(n). cl ...

最新文章

  1. win7网站服务器空间怎么清理,win7如何清理c盘空间_win7磁盘空间不足怎么清理
  2. OA工作流程怎么梳理
  3. 1.3tf的varible\labelencoder
  4. 4个强大的Linux服务器监控工具[转]
  5. C++ 函数返回char*
  6. 排序 之 快排、归并、插入 - 时间复杂度----掌握思想和过程
  7. 传真故障排除示例--网络环境存在丢包导致传真失败
  8. (十四)函数参数和返回值
  9. iOS开发使用TouchID验证登录踩过的一些坑(同时更新FaceID使用方法)
  10. 个人电脑防止被入侵的设置方法。
  11. JDBC数据库驱动的下载、安装与连接
  12. 剖析STM32F103读写W25Q64
  13. digester java_Java XML解析之Digester的使用
  14. 【单片机】2.5 AT89S52的并行I/O端口
  15. 提高免疫力吃什么 多吃奶制品
  16. matlab计算海洋浮力频率_MATLAB气象海洋简单粗暴教程(三十四)——MATLAB里画图的统计函数...
  17. 小李飞刀:醉卧沙场君莫笑,python你还是等等我
  18. hdu 1205 吃糖果 抽屉原理
  19. 12个国外免费DNS
  20. 南大计算机博士黄鑫,南京大学软件学院张贺教授团队在经验软件工程方法学研究中取得重要成果...

热门文章

  1. 2017-2018-2 20179216 《网络攻防与实践》 第八周总结
  2. 投资组合报告-马科维茨模型
  3. 没有苹果开发账号,只有p12文件和mobileprovision文件进行打包
  4. ant design pro中click事件传参正确写法(获取事件对象e)
  5. kali linux 初始密码
  6. linux系统github全局加速
  7. python绘制中国_如何用Python画一个中国地图?
  8. java开发基础知识学习总结
  9. 冰桶挑战,正在朝功利化和畸形化方向“扩散”
  10. ShowWindow函数