配列は、事前にあなたにいくつかのピボット不明で回転させ、昇順にソートしたとします。
(すなわち、[0,1,2,4,5,6,7]は[4,5,6,7,0,1,2]になるかもしれません)。
最小の要素を検索します。
あなたは重複が配列に存在しないと仮定して。
例1:
入力:[3,4,5,1,2]
出力:1
例2:
入力:[4,5,6,7,0,1,2]
出力:0
func findMin(nums []int) int {
lg := len(nums)
l := 0
r := lg - 1
if l+1 > r {
return min(nums[l], nums[r])
}
for l < r {
mid := (l + r) / 2
if nums[r] > nums[mid] {
r = mid
} else {
l = mid + 1
}
}
return nums[l]
}
func min(i int, j int) int {
if i < j {
return i
} else {
return j
}
}