
算法之二分查找
yayaya_gagaga
这个作者很懒,什么都没留下…
展开
-
leetcode875爱吃香蕉的珂珂 (构造0-1数组|二分查找)
前面需要给 max 一个初始值,否则 Math.max 无法正确比较。此外,在 canEatAll 函数中,需要将 time 变量初始化为 0,否则在计算 time+=t;在 canEatAll 函数中,p 是遍历 piles 数组时的索引,而不是数组元素本身。注意数组越界问题:比如mid-1,那么mid就不能为0。比如这堆6个,一次吃四个,那是要向上取整,画二个小时。所以考虑就取最小速度,k=1的情况;也就是找1-max中最小的速度k。构造了01数组,这题里找第一个1。一:先拿到最大和最小的速度。原创 2023-05-06 20:46:08 · 121 阅读 · 0 评论 -
leetcode 278. First Bad Version找第一个坏版本(0-1问题 二分方法)
和leetcode69 思路一模一样。原创 2023-05-06 16:44:14 · 105 阅读 · 0 评论 -
leetcode 69 求x平方根(0-1问题 找到first1 和 last 0)
m*m<=x 要是很大,可能会溢出,所以判断的时候取 mid<=x/mid;二:x/(mid+1) 要加括号!找m*m<=x 最后一个m。可以看为一个升序的数组。原创 2023-05-06 13:02:32 · 91 阅读 · 0 评论 -
leetcode34 找排序数组中找元素的第一个和最后一个位置(二分变形:存在重复元素)
【代码】leetcode34 找排序数组中找元素的第一个和最后一个位置(二分变形:存在重复元素)原创 2023-05-06 12:35:48 · 70 阅读 · 0 评论 -
leetcode153 寻找旋转排序数组中的最小值
二:先判断哪边是是有序数组;有序数组容易判断出最小值,循环数组,则不断二分,用mid比较。一:建一个min=nums[0] 来返回和比较最小数;题目: 发现循环数组中的最小值。类别:二分法+循环数组;类型:简单二分+循环数组。原创 2023-05-03 23:23:49 · 52 阅读 · 0 评论 -
leetcode33 搜索旋转排序数组
二:这时候就判断target是在升序数组里面,还是在循环数组里面。一:一分为二后,一定是一边的升序数组,一边是循环数组。4567012 再复制一遍 4567。012 中间的能得到原来的数组。原创 2023-05-03 20:34:38 · 55 阅读 · 0 评论 -
leetcode162寻找峰值
如果边界值0 or 最后一个or或者就它一个(即长度为1),并且周边的那一个满足条件,也满足条件,所以要做临界值判断。最后一个条件写清除一点也行。原创 2023-05-01 16:53:37 · 50 阅读 · 0 评论 -
leetcode374猜数字大小 Guess Number Higher or Lower
给了你 int guess(int num) 函数,直接用~非常简单的二分查找法。原创 2023-05-01 15:42:51 · 57 阅读 · 0 评论 -
leetcode 74 在二维矩阵里查找数
也是使用了二分法的思想,先分大的,再分小的,在每一个大的里面进行小的二分。原创 2023-05-01 15:14:36 · 107 阅读 · 1 评论 -
leetcode 704 Binary Search二分查找
Math.floor!Math.floor。原创 2023-05-01 00:27:16 · 87 阅读 · 1 评论