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

链接: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)
相关推荐
cpp_25014 小时前
P10570 [JRKSJ R8] 网球
数据结构·c++·算法·题解
cpp_25014 小时前
P8377 [PFOI Round1] 暴龙的火锅
数据结构·c++·算法·题解·洛谷
uesowys4 小时前
Apache Spark算法开发指导-Factorization machines classifier
人工智能·算法
季明洵5 小时前
C语言实现单链表
c语言·开发语言·数据结构·算法·链表
shandianchengzi5 小时前
【小白向】错位排列|图文解释公考常见题目错位排列的递推式Dn=(n-1)(Dn-2+Dn-1)推导方式
笔记·算法·公考·递推·排列·考公
I_LPL5 小时前
day26 代码随想录算法训练营 回溯专题5
算法·回溯·hot100·求职面试·n皇后·解数独
Yeats_Liao5 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
cpp_25015 小时前
P9586 「MXOI Round 2」游戏
数据结构·c++·算法·题解·洛谷
浅念-5 小时前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
有时间要学习5 小时前
面试150——第五周
算法·深度优先