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