尋找旋轉排序陣列中的最小值
阿新 • • 發佈:2018-11-08
159. 尋找旋轉排序陣列中的最小值
假設一個旋轉排序的陣列其起始位置是未知的(比如0 1 2 4 5 6 7 可能變成是4 5 6 7 0 1 2)。
你需要找到其中最小的元素。
你可以假設陣列中不存在重複的元素。
樣例
給出[4,5,6,7,0,1,2] 返回 0
注意事項
You may assume no duplicate exists in the array.
// https://www.lintcode.com/problem/find-minimum-in-rotated-sorted-array/description?_from=ladder&&fromId=6 class Solution { public: /** * @param nums: a rotated sorted array * @return: the minimum number in the array */ int findMin(vector<int> &nums) { // write your code here if(nums.size()<1) return 0; if(nums.size()==1) return nums[0]; int L=0; int R=nums.size()-1; while(nums[L]>nums[R]) { int mid=L+((R-L)>>1); if(nums[mid]>=nums[L] && nums[mid]>nums[R]) { L=mid+1; }else { R=mid; } } return nums[L]; } }; class Solution: """ @param nums: a rotated sorted array @return: the minimum number in the array """ def findMin(self, nums): # write your code here if len(nums)<1: return 0; if len(nums)==1: return nums[0] L=0 R=len(nums)-1 while nums[L]>nums[R]: mid=L+((R-L)>>1) if nums[mid]>=nums[L] and nums[mid]>nums[R]: L=mid+1 else: R=mid return nums[L]