当前位置: 首页 > 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.mrgr.cn/news/92722.html

相关文章:

  • PyQT(PySide)的上下文菜单策略设置setContextMenuPolicy()
  • 机器学习--(随机森林,线性回归)
  • ICP-通过一组匹配的3D点估计相机运动
  • 大模型WebUI:Gradio全解12——LangChain原理、架构和组件(3)
  • 细说 Java 线程池
  • AI 数据集生成和模型微调框架 Distilabel 高级指南:深度功能与最佳实践
  • Apache Spark中的依赖关系与任务调度机制解析
  • 数据库MySQL,在终端输入后,提示不是内部命令等
  • 《机器学习数学基础》补充资料:矩阵的LU分解
  • 硬编码(三)经典变长指令一
  • 千峰React:函数组件使用(3)
  • STL 算法库中的 min_element 和 max_element
  • React 中 useState 的 基础使用
  • LeetCode 热题 100_有效的括号(69_20_简单_C++)(栈;栈+哈希表(建立左右括号的对应关系))
  • Token相关设计
  • Hive配置
  • MQ 笔记
  • 初阶数据结构习题【3】(1时间和空间复杂度)——203移除链表元素
  • Android APK组成编译打包流程详解
  • CMU15445(2023fall) Project #2 - Extendible Hash Index 匠心分析