81. Search in Rotated Sorted Array II
題目網址:https://leetcode.cn/problems/search-in-rotated-sorted-array-ii/
題意:存在一整數 array
nums
, 按非降序排列,nums
中的數值有可能會重複。給一旋轉後的
nums
和一整數target
, 如果nums
中存在target
, 則返回其true
; 否則, 返回false
。盡可能地減少操作步驟。
Solution:
想法:類似 33. Search in Rotated Sorted Array, 差別在本題的
nums
可能會有重複數, 導致nums[left] == nums[mid]
時, 無法判斷[left, mid]
和[mid + 1, right]
哪個才是有序的e.g.
nums = [1,1,1,0,1]
,target = 0
無法判斷[0,2]
和[3,4]
哪個才是有序的。對於這種情況, 將
left + 1
, 然後在新區間繼續做 Binary Search
class Solution { |
- time:$O(n)$ ➔ worse case:元素均相等, 且不為
target
, 則需拜訪所有位置才能得出結果 - space:$O(1)$ ➔ 只需常數空間
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論