image.png
image.png
题目解析
采用双指针,从头和尾分别移动,每一次移动 height[i],height[j] 小的那一个
/// https://leetcode.cn/problems/container-with-most-water/
pub fn max_area(height: Vec<i32>) -> i32 {
// 采用双指针,从头和尾分别移动,每一次移动 height[i],height[j] 小的那一个
let (mut max, mut left,mut right) = (0,0,height.len()-1);
while left<right {
max = max.max((right-left)as i32 * height[left].min(height[right]));
if height[left] < height[right]{
left += 1;
}else {
right -= 1;
}
}
max
}
复杂度分析
空间复杂度: O(1)。
时间复杂度: O(n)。