LeetCode 81 搜尋旋轉排序陣列 II

2022-09-06 00:30:32 字數 855 閱讀 6332

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。

( 例如,陣列 [0,0,1,2,2,5,6] 可能變為 [2,5,6,0,0,1,2] )。

編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回 true,否則返回 false。

示例 1:

輸入: nums = [2,5,6,0,0,1,2], target = 0

輸出: true

示例 2:

輸入: nums = [2,5,6,0,0,1,2], target = 3

輸出: false

高階:這是 搜尋旋轉排序陣列 的延伸題目,本題中的 nums 可能包含重複元素。

這會影響到程式的時間複雜度嗎?會有怎樣的影響,為什麼?

class solution:

def search(self, nums: list[int], target: int) -> bool:

l=0r=len(nums)-1

while(l<=r):

mid=(l+r)//2

if(nums[mid]==target):

return true

if(nums[mid]==nums[l]==nums[r]):

l+=1

r-=1

elif(nums[mid]>=nums[l]):

if(nums[l]<=targetr=mid-1

else:

l=mid+1

else:

if(nums[mid]l=mid+1

else:

r=mid-1

return false

LeetCode81 搜尋旋轉排序陣列 II

二分查詢,但是下面的 在測試用例 3,1 1中出錯。package 牛客刷題.leetcode.查詢.search in rotated sorted array ii created by administrator on 2018 6 28 0028.public class solution ...

LeetCode 81 搜尋旋轉排序陣列 II

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,0,1,2,2,5,6 可能變為 2,5,6,0,0,1,2 編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回true,否則返回false。示例 1 輸入 nums 2,5,6,0,0,1,2 target 0輸出 t...

leetcode81 搜尋旋轉排序陣列 II

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,0,1,2,2,5,6 可能變為 2,5,6,0,0,1,2 編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回 true,否則返回 false。示例 1 輸入 nums 2,5,6,0,0,1,2 target 0 輸...