题解 | #旋转数组的最小数字#
旋转数组的最小数字
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
package main
//二分查找;中间值和一边值的所有情况对比
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
func minNumberInRotateArray(nums []int) int {
// write code here
//比较长度
if len(nums) == 1 {
return nums[0]
}
left, right := 0, len(nums)-1
for left < right {
mid := (left + right) / 2
//中间值和右边值比较,如果中间值大于右边值,说明最小值在右边
if nums[mid] > nums[right] {
left = mid + 1
} else if nums[mid] < nums[right] {
right = mid
} else {
right--
}
}
return nums[left] //有序数组
}
