153. Find Minimum in Rotated Sorted Array
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.
You may assume no duplicate exists in the array.
Example 1:
Input: [3,4,5,1,2]
Output: 1
Example 2:
Input: [4,5,6,7,0,1,2]
Output: 0
func findMin(nums []int) int {
lg := len(nums)
l := 0
r := lg - 1
if l+1 > r {
return min(nums[l], nums[r])
}
for l < r {
mid := (l + r) / 2
if nums[r] > nums[mid] {
r = mid
} else {
l = mid + 1
}
}
return nums[l]
}
func min(i int, j int) int {
if i < j {
return i
} else {
return j
}
}