当前位置: 首页 > news >正文

专题三0~n-1中缺失的数字

1.题目

给一个数组,单调性是递增的,需要找到缺失的数字,加上这个数字就变为等差数组了。

2.算法原理

这里用二分来解决,而二段性是根据下标区分,临界值前的数字于下标相对应,临界值后的于下标相差1,就可以以此为判断基准进行二分查找,等于的情况是在下标不相等的区域,所以nums[mid]!=mid就把right=mid,left就是mid+1,也可以得到mid的确定公式有没有+1,避免死循环。最后还有一种情况,就是数组是等差的,不过少了最后一位,如[0,1,2,3]少了4,则left和right就会在3停下,就需要判断如果下标和值相等就说明是在后一位,就需要+1。

3.代码实现

class Solution
{
public:
	int missingNumber(vector<int>& nums)
	{
		int left = 0, right = nums.size() - 1;
		while (left < right)
		{
			int mid = left + (right - left + 1) / 2;
			if (nums[mid] == mid) left = mid + 1;
			else right = mid;
		}

		return nums[left] == left ? left + 1 : left;
	}
};

http://www.dtcms.com/a/70063.html

相关文章:

  • 6.PE文件新增节
  • Linux进程1.0--task_struct
  • 分支与循环(上)
  • OpenCV基础【图像和视频的加载与显示】
  • 超声重建,3D重建 超声三维重建,三维可视化平台 UR 3D Reconstruction
  • 链表·简单归并
  • 基于SpringBoot+Vue的毕业论文管理系统+LW示例参考
  • Vue:Vue+TS学习笔记
  • Linux第三次练习
  • 【后端】【django】【related_name】`related_name` 的作用
  • 召回度、准确度
  • Java基础面经
  • PyTorch 深度学习实战(14):Deep Deterministic Policy Gradient (DDPG) 算法
  • 【推荐项目】052-用水监控管理系统
  • 【Godot】Window类
  • 【SpringMVC】常用注解:@CookieValue
  • 股票查询系统
  • C#生产型企业ERP系统管理软件PCB行业ERP进销存MRP管理系统BOM管理
  • python---序列 (str,list,tuple)
  • RBAC 模型的简单实现
  • Mamba组件:状态空间模型简介
  • 使用 PerformanceObserver 实现网页性能优化的最佳实践
  • java字符串案例 //要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:查表法)
  • 目标检测中衡量模型速度和精度的指标:FPS和mAP
  • 2023 年全国职业院校技能大赛(中职组)移动应用与开发赛项 赛题第十套
  • 说说 CDN 的工作原理,它在前端性能优化中起到什么作用?
  • 零基础上手Python数据分析 (4):Python数据结构精讲 - 列表、元组、字典、集合
  • NVM环境下安装pnpm报错的解决方案
  • 项目开发 1-确定选题,制作原型
  • uniapp+vue实现购物车的左滑删除功能