LeetCode:154. 尋找旋轉排序陣列中的最小值 II
阿新 • • 發佈:2018-12-04
1、題目描述
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。
( 例如,陣列 [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
說明:
- 這道題是 尋找旋轉排序陣列中的最小值 的延伸題目。
- 允許重複會影響演算法的時間複雜度嗎?會如何影響,為什麼?
2、題解
2.1、解法一
class Solution(object): def findMin(self, nums): """ :type nums: List[int] :rtype: int """ n = len(nums) if n == 0: return None elif n == 1: return nums[0] index= 0 while index < n-1 and nums[index] <= nums[index+1]: index += 1 print(index) if index == n-1: return nums[0] return nums[index+1]