|  | @@ -1,9 +1,21 @@
 | 
	
		
			
				|  |  |  package main
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func findMin(nums []int) int {
 | 
	
		
			
				|  |  | -	return 0
 | 
	
		
			
				|  |  | +	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() {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +// func main() {
 | 
	
		
			
				|  |  | +// 	println(findMin([]int{1, 3, 5}), 1)
 | 
	
		
			
				|  |  | +// 	println(findMin([]int{2, 2, 2, 0, 1}), 0)
 | 
	
		
			
				|  |  | +// }
 |