154 尋找旋轉排序陣列中的最小值 II

2021-10-25 19:26:09 字數 618 閱讀 7537

首先將153. 尋找旋轉排序陣列中的最小值中提到的兩個問題弄明白,這個題是在153基礎上進行去重操作

class

solution

:def

findmin

(self, nums: list[

int])-

>

int:

l, r =0,

len(nums)-1

while l < r:

mid =

int(

(l+r)/2

)if nums[r]

> nums[mid]

: r = mid

elif nums[r]

< nums[mid]

: l = mid +

1else

:# 為什麼不直接r = mid

r -=

1return nums[l]

出現了重複數字,當遇到重複數字時,right就向左移動一步,為什麼不直接r = mid是因為不能保證mid和right中間沒有其他數字,比如[3,3,1,3]就不可以通過,r -= 1也會在下一次迭代中改變mid的位置。

154 尋找旋轉排序陣列中的最小值 II H

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 請找出其中最小的元素。注意陣列中可能存在重複的元素。示例 1 輸入 1,3,5 輸出 1 示例 2 輸入 2,2,2,0,1 輸出 0 說明 這道題是 尋找旋轉排序陣...

154尋找旋轉排序陣列中的最小值 II

題目描述 假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 請找出其中最小的元素。注意陣列中可能存在重複的元素。示例 1 輸入 1,3,5 輸出 1 示例 2 輸入 2,2,2,0,1 輸出 0 說明 這道題是 尋找...

154 尋找旋轉排序陣列中的最小值 II

154 尋找旋轉排序陣列中的最小值 ii 假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 請找出其中最小的元素。注意陣列中可能存在重複的元素。示例 1 輸入 1,3,5 輸出 1 示例 2 輸入 2,2,2,0,1...