【优选算法】盛最多水的容器

链接:11. 盛最多水的容器 - 力扣(LeetCode)

算法原理:

解法:利用单调性,使用双指针来解决问题

1.定义两个指针:left(指向最左边),right(指向最右边)

2.比较 left 和 right 谁比较小,谁小谁移动,left 指针向右移动,right 指针向左移动

3.计算容器大小,定义一个最大值,每算一次就更新一下最大值

4.重复步骤2 移动指针,直到两个指针相遇即可

代码编写:

java 复制代码
class Solution {
    public int maxArea(int[] height) {
        int left = 0, right = height.length - 1, ret = 0;
        while(left < right){
            int v = Math.min(height[left], height[right]) * (right - left);
            ret = Math.max(ret, v);
            if(height[left] < height[right]){
                left++;
            }else{
                right--;
            }
        }
        return ret;
    }
}
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)
相关推荐
wenyq718 小时前
LeetCode 2460. Apply Operations to an Array
算法·leetcode
.格子衫.19 小时前
032动态规划之区间DP——算法备赛
算法·动态规划
不会代码的小猴20 小时前
7. JSON
开发语言·c++·笔记·qt·算法·json
怪奇云呼军20 小时前
知识库也会注入指令?闪电智能VoiceAgent 如何防住 Prompt Injection
人工智能·python·算法·云计算·音视频
阿里云大数据AI技术21 小时前
基于 EMR Serverless Ray 实现 Qwen 模型批量推理实践
人工智能·算法·agent
Rambo.xia21 小时前
为什么去马赛克算法,决定了ISP的画质上限
算法·接口隔离原则
Benny_Tang1 天前
题解:P10230 [COCI 2023/2024 #4] Lepeze
c++·算法
Geek-Chow1 天前
06 训练管线:数据如何变成权重
人工智能·算法
我变成萤火虫1 天前
反悔贪心(经典题目讲解)
c++·算法·贪心算法·stl·排序算法·反悔贪心