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)
- // }
|