[双指针] 4. 力扣--盛最多水的容器

题目链接:

https://leetcode.cn/problems/container-with-most-water/

一. 题目描述


二. 解题思路

两指针相向而行,只需遍历一遍数组就能找出最大容积,因此时间复杂度是O(N)。边遍历边更新最大值。

三. 代码实现

cpp 复制代码
class Solution 
{
public:
    int maxArea(vector<int>& height) 
    {
        int left = 0, right = height.size()-1;
        int maxarea = 0;

        while(left < right)
        {
            // 更新最大值
            int area = min(height[left], height[right])*(right - left);
            if(maxarea < area)  maxarea = area;
            // 移动指向的元素小的指针
            if(height[left] < height[right]) left++;
            else right--;
        }
        return maxarea;
    }
};
相关推荐
wanderist.2 小时前
高维矩阵的压维存储和高维差分
c++·算法·蓝桥杯
迈巴赫车主2 小时前
蓝桥杯192.等差数列java
java·数据结构·算法·职场和发展·蓝桥杯
chase。2 小时前
【学习笔记】从经典算法到通用神经运动规划器
笔记·学习·算法
feasibility.2 小时前
OpenCV图像滤波算法应用:常见滤波器的原理与效果对比(含c++/python代码与中文显示)
c++·opencv·算法
Rabitebla2 小时前
快速排序(QuickSort)完全指南 —— 从原理到工业级优化
c语言·数据结构·c++·算法·github
赫瑞2 小时前
Java中的图论2——Kruskal算法
java·算法·图论
XiYang-DING2 小时前
【LeetCode】206. 反转链表
算法·leetcode·链表
_深海凉_2 小时前
LeetCode热题100-合并两个有序链表
算法·leetcode·链表
人工智能培训2 小时前
样本效率与安全探索的矛盾解析及平衡路径
大数据·人工智能·深度学习·算法·机器学习·知识图谱·故障诊断