LeetCode 11

双指针解法:

首先分析题目,盛水的容量其于宽度与小的高度,先初始化两个指针分别在第一个与最后一个数(i,j)

如下:

我们可以分析发现,当heigth[i]为3时,我们移动j只会让宽度变小,所以i++,同理当i=1时,需要j--,当i=j时,遍历结束。

这样我们就省略了固定一个指针遍历其他指针的时间,时间复杂度降低到O(n)。

同时,记录每次的面积,最终取最大值。

代码:

cpp 复制代码
class Solution {
public:
    int maxArea(vector<int>& height) {
       int res=0;
       int i=0;
       int j=height.size()-1;
       while(i<j)
       {
        int area=(j-i)*min(height[i],height[j]);
        res=max(res,area);
        if(height[i]<height[j])
        {
            i++;
        }else{
            j--;
        }
       }
       return res;
    }
};
相关推荐
灵感__idea9 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect19 小时前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱2 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub2 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
NAGNIP2 天前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试