# 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 """ 我們把數(shù)組二分后,要么左邊有序,要么右邊有序 因?yàn)橹挥杏行颍拍芏郑? 所以我們得根據(jù)有序的那個(gè)部分 確定我們?cè)撊绾胃淖兌植檎业纳?span id="fdqwsec" class="wpcom_tag_link">下界 """ # 如果旋轉(zhuǎn)數(shù)組在左半部分有序 if nums[left] <= nums[mid]: # 并且目標(biāo)值在左半部分里 if nums[left]<=target<nums[mid]: right = mid-1 else: left = mid + 1 # 如果旋轉(zhuǎn)數(shù)組左半部分無序, # 說明旋轉(zhuǎn)點(diǎn)在左半部分, # 那么右半部分必然有序 else: # 并且目標(biāo)值在右半部分 if nums[mid]<target<=nums[right]: left = mid + 1 else: right = mid-1 return -1# leetcode submit region end(Prohibit modification and deletion)
———————————————–
如果是第一次閱讀文章,可以看看下面的話。
以上內(nèi)容由平時(shí)積累而成,盡量保證代碼與注釋合在一起,并未做過多篇幅的解釋。不一定是最優(yōu)解,但一定是自己能看得懂的。有疑問的地方請(qǐng)留言評(píng)論,我在評(píng)論中給詳細(xì)解答。如果題干是原題,就沒有寫在文章中。后續(xù)內(nèi)容會(huì)慢慢發(fā)出
歡迎大家評(píng)論,收藏和轉(zhuǎn)發(fā)。
感謝大家的點(diǎn)贊和關(guān)注。
先贊后看,年薪百萬(wàn)
紅帽帽,白簽簽,一起排隊(duì)做酸酸。愿疫情早日過去。