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!
評論