题解 | #旋转数组的最小数字#
旋转数组的最小数字
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] //有序数组 }