# leetcode submit region begin(Prohibit modification and deletion)
from typing import *
class Solution:
def search(self, nums: List[int], target: int) -> int:
left, right = 0, len(nums)-1
while left <= right:
mid = left + (right-left) // 2
if nums[mid] == target:
return mid
"""
我们把数组二分后,要么左边有序,要么右边有序
因为只有有序,才能二分,
所以我们得根据有序的那个部分
确定我们该如何改变二分查找的上下界
"""
# 如果旋转数组在左半部分有序
if nums[left] <= nums[mid]:
# 并且目标值在左半部分里
if nums[left]<=target
-----------------------------------------------
如果是第一次阅读文章,可以看看下面的话。
以上内容由平时积累而成,尽量保证代码与注释合在一起,并未做过多篇幅的解释。不一定是最优解,但一定是自己能看得懂的。有疑问的地方请留言评论,我在评论中给详细解答。如果题干是原题,就没有写在文章中。后续内容会慢慢发出
欢迎大家评论,收藏和转发。
感谢大家的点赞和关注。
先赞后看,年薪百万
红帽帽,白签签,一起排队做酸酸。愿疫情早日过去。