标签:二分查找

数据结构与算法刷题之【二分查找】篇

<p>汇总二分查找相关的数据结构与算法刷题笔记,讲解二分边界与循环不变量等细节,涵盖缺失数字、搜索插入位置等经典题型并给出Java实现与复杂度分析。</p>

LeetCode 162. 寻找峰值(二分)

<p>本文讲解 LeetCode 第 162 题「寻找峰值」,在可能含多个峰值的数组中返回任一峰值索引。利用 nums[-1]=nums[n]=-∞ 的性质,通过比较 nums[mid] 与 nums[mid+1] 收缩区间进行二分,达到 O(log n) 时间复杂度,并附最大值解法与 Java 代码。</p>

LeetCode 2300. 咒语和药水的成功对数(排序+二分)

<p>本文讲解 LeetCode 第 2300 题「咒语和药水的成功对数」,统计每个咒语与药水乘积大于等于 success 的组合数。先对药水排序,再对每个咒语二分查找边界位置得到成功数量,时间复杂度 O(n log n),附 Java 代码。</p>

LeetCode 374. 猜数字大小(二分)

<p>本文讲解 LeetCode 第 374 题「猜数字大小」,通过 guess 接口反馈缩小范围找出目标数。采用二分查找,注意 l+r 可能溢出 int,先用 long 暂存再转回 int,时间复杂度 O(log n)、空间复杂度 O(1),附 Java 代码。</p>

LeetCode 875. 爱吃香蕉的珂珂(最小速度二分)

<p>本文讲解 LeetCode 第 875 题「爱吃香蕉的珂珂」,在 h 小时内吃完所有香蕉的最小速度。对速度进行二分,check 函数按堆累加所需小时数,并给出缩小左右边界的优化技巧,时间复杂度 O(n log n),附 Java 代码。</p>

leetcode【数组—简单】704. 二分查找

<p>讲解LeetCode 704二分查找的解题过程,分析有序数组查找目标值的二分实现与边界处理,给出Java代码、复杂度分析与本地调试方式,适合作为二分查找入门练习。</p>