| 123456789101112131415161718192021 | 
							- package main
 
- func findMin(nums []int) int {
 
- 	beg, end := 0, len(nums)-1
 
- 	for beg < end {
 
- 		mid := beg + (end-beg)/2 // Very important
 
- 		if nums[mid] < nums[end] {
 
- 			end = mid
 
- 		} else if nums[mid] > nums[end] {
 
- 			beg = mid + 1
 
- 		} else {
 
- 			end-- // If equals, cannot decide in which part, so narrow the range
 
- 		}
 
- 	}
 
- 	return nums[beg]
 
- }
 
- // func main() {
 
- // 	println(findMin([]int{1, 3, 5}), 1)
 
- // 	println(findMin([]int{2, 2, 2, 0, 1}), 0)
 
- // }
 
 
  |