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

【算法方法总结·一】二分法的一些技巧和注意事项

【算法方法总结·一】二分法的一些技巧和注意事项

  • 打算归纳出一个算法章节出来,当作自己的总结回顾,敬请期待

【二分法】

  • 对于有些题目 暴力解法 时间复杂度为O(n)
  • 二分查找 的时间复杂度为O(logn)
  • 这便是 二分法优势 所在

两种写法

左闭右闭 [left,right]

  • 其中left == right有意义 的,所以 while(left <= right)
  • 更新时,left 更新为 mid + 1right 更新为 mid - 1
  • 所以 初始化 时,一般为 left = 0right = n - 1

左闭右开 [left,right)

  • 其中left == right没有意义 的,所以 while(left < right)
  • 更新时,left 更新为 mid + 1right 更新为 mid
  • 所以 初始化 时,一般为 left = 0right = n

相关力扣题

  • 相关解法见【算法题解答·一】二分法

34.在排序数组中查找元素第一和最后一个位置

35.搜索插入位置简单

74.搜索二维矩阵

33.搜索旋转排序数组

153.寻找旋转排序数组中的最小值

4.寻找两个正序数组的中位数困难

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

相关文章:

  • 计算机毕业设计SpringBoot+Vue.js社团管理系统(源码+文档+PPT+讲解)
  • C# 中 for 和 foreach 的深入研究
  • Qt 中signals和slots、Q_SIGNAL和Q_LOT、Q_SIGNALS和Q_SLOTS的区别和使用
  • Game Maker 0.11更新:构建社交竞速游戏并增强玩家互动
  • Opencv Canny边缘检测
  • 上位机知识篇---Linux中RPM包管理工具PATH环境变量
  • 基于STM32的天气查询系统设计
  • 服务器迁移记录【腾讯云-->阿里云】
  • 6.6.6 嵌入式SQL
  • “深入浅出”系列之QT:(14)Qt元对象系统介绍
  • 开箱即用!一个功能丰富的 AI 语音工具箱!
  • Spring-AI搭建企业专属知识库 一
  • 模型优化之强化学习(RL)与监督微调(SFT)的区别和联系
  • 【优选算法】滑动窗口 串联所有单词的⼦串
  • JBoltAI_SpringBoot如何区分DeepSeek R1深度思考和具体回答的内容(基于Ollama)?
  • 计算机毕业设计SpringBoot+Vue.js手机商城 (源码+文档+PPT+讲解)
  • 图书管理系统框架构建的收获
  • rdiff-backup备份
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 6
  • Java中的大数据流处理框架与技术比较
  • 计算机毕业设计SpringBoot+Vue.js公司日常考勤系统(源码+文档+PPT+讲解)
  • SourceTree配置SSH步骤详解
  • SAP-ABAP:SAP数据库视图(Database View)详解-创建
  • CAN硬件协议详解
  • 怎么排查页面响应慢的问题
  • Nginx系列09(Nginx 与其他服务集成、实战项目)
  • 机器学习:线性回归,梯度下降
  • freertos 学习5--链路状态设置
  • 房屋租赁|房屋租赁系统|基于Springboot的房屋租赁系统设计与实现(源码+数据库+文档)
  • k8s出问题后 应该查看哪些内容