s******b 发帖数: 185 | 1 就是控制循环的 while L
麻痹的我总是晕。 |
t****b 发帖数: 2484 | 2 题刷得太少
是否有等号和循环跳出和返回pivot,pivot+/-1有关
有四种情况 建议楼主总结一下 要不然面试的时候先凭感觉写出来然后test case跪了
就很尴尬了 |
s******b 发帖数: 185 | 3 多谢
了
【在 t****b 的大作中提到】 : 题刷得太少 : 是否有等号和循环跳出和返回pivot,pivot+/-1有关 : 有四种情况 建议楼主总结一下 要不然面试的时候先凭感觉写出来然后test case跪了 : 就很尴尬了
|
w*****t 发帖数: 485 | 4 都可以,循环内的条件判断相应做调整,拿几个corner cases在纸上运算几遍就清楚了
面的时候也有可能问如果改成另一种怎么处理。。。 |
s******b 发帖数: 185 | 5 感觉大部分都是<=, 有几个题是<
【在 w*****t 的大作中提到】 : 都可以,循环内的条件判断相应做调整,拿几个corner cases在纸上运算几遍就清楚了 : 面的时候也有可能问如果改成另一种怎么处理。。。
|
m*f 发帖数: 3078 | 6 有链接吗?我想学习一下
我现在用的是下面的套路
while(start + 1 < end) {
}
了
【在 t****b 的大作中提到】 : 题刷得太少 : 是否有等号和循环跳出和返回pivot,pivot+/-1有关 : 有四种情况 建议楼主总结一下 要不然面试的时候先凭感觉写出来然后test case跪了 : 就很尴尬了
|
t****b 发帖数: 2484 | 7 一年没刷过题了 只是印象中得分情况讨论返回值和等于号
呼唤街霸哥 有何良策
【在 m*f 的大作中提到】 : 有链接吗?我想学习一下 : 我现在用的是下面的套路 : while(start + 1 < end) { : } : : 了
|
m*f 发帖数: 3078 | 8 这个算吗?
【在 t****b 的大作中提到】 : 一年没刷过题了 只是印象中得分情况讨论返回值和等于号 : 呼唤街霸哥 有何良策
|
D**********0 发帖数: 1022 | 9 叔我来啦,
1. 用 l + 1 < r 不会死循环,返回值时多进行一次判断
2. mid = l + (r - l) / 2不会溢出
3. mid = l or r
基本上就这样,所有二分的题就都可以解了。
https://github.com/billryan/algorithm-exercise/blob/master/zh-hans/basics_
algorithm/binary_search.md |
m*f 发帖数: 3078 | 10 这个还是有局限性的
【在 D**********0 的大作中提到】 : 叔我来啦, : 1. 用 l + 1 < r 不会死循环,返回值时多进行一次判断 : 2. mid = l + (r - l) / 2不会溢出 : 3. mid = l or r : 基本上就这样,所有二分的题就都可以解了。 : https://github.com/billryan/algorithm-exercise/blob/master/zh-hans/basics_ : algorithm/binary_search.md
|
|
|
D**********0 发帖数: 1022 | 11 能举个栗子吗?
【在 m*f 的大作中提到】 : 这个还是有局限性的
|
u**u 发帖数: 668 | 12 哈哈,直接这样写是最保险的
然后最后判断一下 start , end
【在 m*f 的大作中提到】 : 有链接吗?我想学习一下 : 我现在用的是下面的套路 : while(start + 1 < end) { : } : : 了
|
m*f 发帖数: 3078 | 13 忘了,不过那个template能解决几乎所有的查找
【在 D**********0 的大作中提到】 : 能举个栗子吗?
|
s******b 发帖数: 185 | 14 看了半天,还是九章那个模板方便,以后就用这个模板了。
while left+1
【在 m*f 的大作中提到】 : 忘了,不过那个template能解决几乎所有的查找
|
m*f 发帖数: 3078 | 15 你们没有看出来我在里面添加的咖喱吗?
【在 m*f 的大作中提到】 : 这个算吗?
|
c********1 发帖数: 5269 | 16 10< n
9<=n
等同
【在 s******b 的大作中提到】 : 感觉大部分都是<=, 有几个题是<
|
m*f 发帖数: 3078 | 17 left = 0;
right = size - 1;
while(left < right) or while(left <= right)
【在 c********1 的大作中提到】 : 10< n : 9<=n : 等同
|
W***o 发帖数: 6519 | 18 Valid perfect square 那个题用二分不能这么写
: 有链接吗?我想学习一下
: 我现在用的是下面的套路
: while(start 1
【在 m*f 的大作中提到】 : left = 0; : right = size - 1; : while(left < right) or while(left <= right)
|
y**********u 发帖数: 2839 | 19 google POJ 二分,做50道题,保证你全部理解,加油
【在 s******b 的大作中提到】 : 就是控制循环的 while L: 麻痹的我总是晕。
|
z*********n 发帖数: 1451 | 20 如果用<=,那么right = 数组长度-1
如果用< ,那么right = 数组长度
建议用前者,适用情况更广。 |
r******9 发帖数: 566 | |
d******v 发帖数: 801 | 22 mark,以后看
【在 m*f 的大作中提到】 : 这个算吗?
|