k****r 发帖数: 807 | 1 有一个数组,数组里元素先递增再递减再递增,然后给一个element, 返回该element
的index或者-1, input : [2,3,5,7,-3,-2,-1,4] element:-3
160;返回4。
有人会做吗?谢 | k****r 发帖数: 807 | | h*******e 发帖数: 1377 | 3 先两个二分找到两个peak 然后用3段做二分找val? | l**o 发帖数: 356 | | k****r 发帖数: 807 | 5 嗯,记得好像也是说先找到peak,再分段bs。
但是,怎么找peak呢,比如说mid值大于start的值,peak在左右还是都有可能啊。
【在 h*******e 的大作中提到】 : 先两个二分找到两个peak 然后用3段做二分找val?
| C*7 发帖数: 234 | 6 不断二分,看中点趋势
砍在上升段:
比较中点和起点,小于等于起点的话只取左半边;大于起点两边都继续二分
砍在下降段:
就可以开始两边取peak(因为其他情况都是砍在上升段,所以此时可以保证两peak在当
前两端内)
最后分三段二分找
【在 k****r 的大作中提到】 : 嗯,记得好像也是说先找到peak,再分段bs。 : 但是,怎么找peak呢,比如说mid值大于start的值,peak在左右还是都有可能啊。
| k****r 发帖数: 807 | 7 可行,thx
【在 C*7 的大作中提到】 : 不断二分,看中点趋势 : 砍在上升段: : 比较中点和起点,小于等于起点的话只取左半边;大于起点两边都继续二分 : 砍在下降段: : 就可以开始两边取peak(因为其他情况都是砍在上升段,所以此时可以保证两peak在当 : 前两端内) : 最后分三段二分找
|
|