Leetcode 154: Find Minimum in Rotated Sorted Array II
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
Find the minimum element.
The array may contain duplicates.
1 public class Solution { 2 public int FindMin(int[] nums) { 3 int low = 0, high = nums.Length - 1, min = Int32.MaxValue; 4 5 while (low <= high) 6 { 7 min = Math.Min(min, Math.Min(nums[low], nums[high])); 8 9 int mid = low + (high - low) / 2; 10 11 min = Math.Min(min, nums[mid]); 12 13 if (nums[low] < nums[mid]) 14 { 15 low = mid + 1; 16 } 17 else if (nums[low] == nums[mid]) 18 { 19 low = low + 1; 20 } 21 else 22 { 23 high = mid - 1; 24 } 25 } 26 27 return min; 28 } 29 }

浙公网安备 33010602011771号