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

力扣之二分法

        今天,学习了二分法,详细内容见代码随想录 (programmercarl.com),讲得十分好。

        力扣之35. 搜索插入位置 - 力扣(LeetCode)。

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

        这里与直接二分法稍微不同,存在数组中并没有target,还要找到target插入的位置,这里用了一句return left就解决了。

        这里其实可以自己动手画画,如果找不到target,最后的right是小于left的,而且left = right + 1,left的位置就是第一个大于target的数字的位置,就是target要插入的位置。

        二分法的场景有很多,比如已经知道数组中是有target,这个比较简单,还有一种就是target是不在数组中的,但最后跳出循环的时候,【right,left】区间就是包含target所在的范围。还有一种是数组中有许多target,要确定上下限,这得分别用二分法确定上下限。

        二分法的关键词:已排序,查找对应数据。

附录:

代码随想录 (programmercarl.com)

http://www.lryc.cn/news/185030.html

相关文章:

  • css图形化理解--扭曲函数skew()
  • 八、互联网技术——物联网
  • 聊聊MySQL的聚簇索引和非聚簇索引
  • python之subprocess模块详解
  • 第10讲:Vue组件的定义与注册
  • Pycharm操作git仓库 合并等
  • Flink+Doris 实时数仓
  • windows 任务计划自动提交 笔记到github 、gitee
  • 闭包和装饰器
  • 注册器模式
  • 5SpringMVC处理Ajax请求携带的JSON格式(“key“:value)的请求参数
  • 学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC
  • Redisson 集成SpringBoot 详解
  • C# 下载模板文件 Excel
  • 如何做好sop流程图?sop流程图用什么软件做?
  • JAVA编程题-求矩阵螺旋值
  • Python--入门
  • STM32复习笔记(二):GPIO
  • POJ 3264 Balanced Lineup 线段树 / 平方分割
  • element-plus自动引入组件报错,例如collapse、loading
  • ChainForge:衡量Prompt性能和模型稳健性的GUI工具包
  • 队列--二叉树层序遍历
  • Ceph入门到精通-Linux内核网络参数优化小结
  • AWK语言第二版 2.6个人库 2.7小结
  • 8年经验之谈 —— Web ui自动化测试框架总结!
  • Kafka在企业级应用中的实践
  • 使用企业订货系统后的效果|软件定制开发|APP小程序搭建
  • STL关联式容器set,multiset,pair,map
  • MFC文本输出学习
  • Python 数据分析与挖掘(一)