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

链接: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)
相关推荐
yong99908 分钟前
LSD直线提取算法 MATLAB
开发语言·算法·matlab
MobotStone14 分钟前
一文看懂AI智能体架构:工程师依赖的8种LLM,到底怎么分工?
后端·算法·llm
lengxuenong23 分钟前
潍坊一中第四届编程挑战赛(初赛)题解
算法
松涛和鸣30 分钟前
25、数据结构:树与二叉树的概念、特性及递归实现
linux·开发语言·网络·数据结构·算法
Han.miracle41 分钟前
数据结构--初始数据结构
算法·集合·大o表示法
List<String> error_P42 分钟前
C语言联合体:内存共享的妙用
算法·联合体
little~钰1 小时前
可持久化线段树和标记永久化
算法
獭.獭.1 小时前
C++ -- 二叉搜索树
数据结构·c++·算法·二叉搜索树
TOYOAUTOMATON1 小时前
自动化工业夹爪
大数据·人工智能·算法·目标检测·机器人
im_AMBER1 小时前
Leetcode 67 长度为 K 子数组中的最大和 | 可获得的最大点数
数据结构·笔记·学习·算法·leetcode