Search in Rotated Sorted Array

Cracking the code: 257

Search in Rotated Sorted Array_第1张图片

如果是sorted,没有rotated的array,很明显我们会用Binary search. 但是它旋转了以后,就不是binary的状态了。我的直觉是先iterate一遍,找到pivot点【第一个 前一个比后一个大】。然后对左右两个subarray进行binary search.

【我觉得我自己上面那个方法不错】

【但是今天看教程,这个方法的理解太赞了】


首先如果是正常的sorted array:生序排列

Search in Rotated Sorted Array_第2张图片

34012 是rotated

Search in Rotated Sorted Array_第3张图片



对于Rotated 来使用Binary Search有两种可能的情况。要么mid在左半部分,要么在右半部分。

Search in Rotated Sorted Array_第4张图片



Search in Rotated Sorted Array_第5张图片

这里用到了九章算法的一个binary search模板:

Search in Rotated Sorted Array_第6张图片

Followup-如果数组里有相同数字:

图会变成这样。

Search in Rotated Sorted Array_第7张图片


Search in Rotated Sorted Array_第8张图片


没想到连这题都搞不定阿。。。看完视频,不按照九章算法模板就是过不了。

Search in Rotated Sorted Array_第9张图片


omg。。。最大的错误就是在判断mid的点在左半部分还是右半部分。

Search in Rotated Sorted Array_第10张图片

你可能感兴趣的:(Search in Rotated Sorted Array)