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

链接: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)
相关推荐
Matrix_1139 分钟前
手机里的计算摄影:广角形变校正算法
人工智能·算法·智能手机·计算摄影
WBluuue44 分钟前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
x138702859572 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
海兰2 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
zwenqiyu3 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
wayz113 小时前
Momentum:TSI(真实强度指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程
万事大吉CC3 小时前
Python 笔试输入模板总结
python·算法
lihao lihao3 小时前
Linux信号
开发语言·c++·算法
大白话_NOI4 小时前
【洛谷 P2249】查找(深基 13. 例 1)+ 详细分析
c++·算法
吠品4 小时前
C++实现m行n列带边框的长方形输出
算法