劍指 Offer 11. 旋轉陣列的最小數字
阿新 • • 發佈:2020-12-16
劍指 Offer 11. 旋轉陣列的最小數字
問題描述:
把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入一個遞增排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。例如,陣列 [3,4,5,1,2] 為 [1,2,3,4,5] 的一個旋轉,該陣列的最小值為1。
示例 1:
輸入:[3,4,5,1,2]
輸出:1
示例 2:輸入:[2,2,2,0,1]
輸出:0
注意:本題與主站 154 題相同:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/
object Solution { def minArray(nums: Array[Int]): Int = { var left = 0 var right = nums.length - 1 while (left < right) { val mid = (left + right)/2 if (nums(mid) < nums(right)) { right = mid } else if (nums(mid) > nums(right)) { left = mid + 1 } else { right -= 1 } } return nums(right) } }
func minArray(nums []int) int { left := 0 right := 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 -= 1 } } return nums[right] }