Bare Algo
搜索算法...
Ctrl+K
二分查找
在有序数组中快速查找目标值或边界,时间复杂度O(log n)。
算法题
(11)
704. 二分查找
简单
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
数组
二分查找
35. 搜索插入位置
简单
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
数组
二分查找
34. 在排序数组中查找元素的第一个和最后一个位置
中等
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
数组
二分查找
33. 搜索旋转排序数组
中等
整数数组 nums 按升序排列,数组中的值互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转。
数组
二分查找
153. 寻找旋转排序数组中的最小值
中等
已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。请你找出并返回数组中的 最小元素 。
数组
二分查找
69. x 的平方根
简单
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
数学
二分查找
875. 爱吃香蕉的珂珂
中等
珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。
数组
二分查找
1011. 在 D 天内送达包裹的能力
中等
传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。给出包裹的重量 weights 和天数 days,返回能在 days 天内将传送带上的所有包裹送达的船的最低载重能力。
数组
二分查找
162. 寻找峰值
中等
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。
数组
二分查找
74. 搜索二维矩阵
中等
给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列;每行的第一个整数大于前一行的最后一个整数。给你一个整数 target,如果 target 在矩阵中,返回 true;否则,返回 false。
数组
二分查找
矩阵
4. 寻找两个正序数组的中位数
困难
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n))。
数组
二分查找
分治
实际应用
(4)
变高虚拟列表定位
中等
在变高虚拟列表中,维护累积高度数组(prefixSum),通过二分查找根据 scrollTop 快速定位起始渲染索引(startIndex)。
二分查找
虚拟列表
性能优化
时间轴/区间插入
中等
在有序的时间轴或区间集合中,使用二分查找快速找到新事件的插入位置,或检测是否存在时间冲突。
二分查找
时间轴
日程安排
“答案二分”参数调优
困难
在单调函数上搜索最小/最大可行参数。例如:确定最大并发数、最佳 Chunk 大小、或图像压缩阈值,确保在满足性能要求的前提下最大化/最小化参数。
二分答案
工程调优
性能优化
有序数据检索
简单
在前端本地维护的有序索引或已排序大列表中,使用二分查找(lower_bound/upper_bound)快速定位数据,替代线性遍历。
二分查找
数据检索
本地搜索