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

2021-10-02 08:49:38 字數 763 閱讀 8304

題目

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

( 例如,陣列 [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

思路1

直接遍曆法,從後向前遍歷,不停比較連續的兩個數。如果當前元素大於等於前乙個元素,則繼續向前遍歷比較;如果當前元素小於前乙個元素,則表示當前數就是最小數。

時間複雜度o(n)

int

findmin

(vector<

int>

& nums)

return nums[0]

;}

思路2

因為是有序的陣列在某個點被旋轉,所以仍然部分有序,可以考慮使用二分法進行查詢。

int

findmin

(vector<

int>

& nums)

return nums[low]

;}

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

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 請找出其中最小的元素。注意陣列中可能存在重複的元素。示例 1 示例 2 1.旋轉排序陣列 nums 可以被拆分為 2 個排序陣列 nums1,nums2 並且 num...

尋找旋轉排序陣列中的最小值 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...

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 說明 這道題是 尋找...