Leetcode 33. 搜索旋转排序数组
本题将采用二分查找寻找目标值;首先通过对比left、right和mid下标对应的值,可知mid分割的哪一侧是有序的;然后判断target是否属于有序的一侧,若属于,则在有序侧查找,反之,在另一侧查找。
例如,在数组nums = [5,6,7,1,2,3,4]
中查找target = 3
。此时,下标left = 0
、right = 6
、mid = 3
;因为nums[right] > nums[mid]
,则右侧nums[mid: ]
是有序的,又因为nums[mid] < target < nums[right]
,所以下一轮要在右侧进行查找。
完整代码如下:
1 | class Solution(): |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Orange's Blog!
评论