https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/
impl Solution {
pub fn find_min(nums: Vec<i32>) -> i32 {
let mut l = 0;
let mut r = nums.len() - 1;
while l < r {
let m = l + (r - l) / 2;
if nums[m] > nums[m + 1] {
return nums[m + 1]
} else {
r = m;
}
}
l = 0;
r = nums.len() - 1;
while l < r {
let m = l + (r - l) / 2;
if nums[m - 1] > nums[m] {
return nums[m]
} else {
l = m + 1;
}
}
nums[0]
}
}
impl Solution {
pub fn find_min(nums: Vec<i32>) -> i32 {
let mut l = 0;
let mut r = nums.len() - 1;
while l < r {
let m = l + (r - l) / 2;
if nums[m] > nums[r] {
l = m + 1
} else if nums[m] < nums[r] {
r = m;
} else {
r -= 1;
}
}
nums[l]
}
}