package main /** * * @param rotateArray int整型一维数组 * @return int整型 */ func minNumberInRotateArray( rotateArray []int ) int { nums := rotateArray if len(nums) == 0 { return -1 } if len(nums) == 1 { return nums[0] } left := 0 right := len(nums) - 1 for left < right { mid := left + (right-left)/2 //中间数大于右边数,最小值在右边 if nums[mid] > nums[right] { left = mid + 1 } else if nums[mid] < nums[right] { //中间数小于右边数,最小值在左边 right = mid } else { //相等时,缩减范围 right-- } } return nums[left] }