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

链接: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)
相关推荐
qystca33 分钟前
【16届蓝桥杯寒假刷题营】第2期DAY2
数据结构·c++·算法·深度优先·二分·爆搜
南宫生2 小时前
力扣动态规划-19【算法学习day.113】
java·学习·算法·leetcode·动态规划
和风化雨2 小时前
排序算法--插入排序
c语言·c++·算法·排序算法
被AI抢饭碗的人2 小时前
算法题(56):旋转链表
数据结构·算法·链表
lin zaixi()3 小时前
洛谷 P10289 [GESP样题 八级] 小杨的旅游 C++ 完整题解
c++·算法·旅游
我一定会有钱3 小时前
C语言:创建带头结点的动态链表:解析与实现
c语言·算法
某个默默无闻奋斗的人3 小时前
二维前缀和:高效求解矩阵区域和问题
java·算法·leetcode·前缀和
Zhi Zhao3 小时前
利用matlab寻找矩阵中最大值及其位置
算法·matlab·矩阵
weixin_307779134 小时前
自然语言生成(NLG)算法模型评估方案的硬件配置、系统架构设计、软件技术栈、实现流程和关键代码
人工智能·算法·自然语言处理·系统架构
好好学习O(∩_∩)O4 小时前
取模与加减乘除原理,模拟实现代码及相关公式推导
c++·算法