当前位置: 首页 > news >正文

盛水最多的容器_优选算法(C++)双指针

网页直达:

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

题目分析

1.其实高度就是"木桶效应"

2.暴力枚举:选两个高度算面积,找到最大值,但是超时.

3.双指针法:我们从两边开始向里面遍历,发现会有宽度和高度的变化

情况一:向里面遍历宽度w一定是减小的,假设此时的高度h不变.容积v变小

情况二:向里面遍历,宽度w和高度h都有变小.容积变小.

这些情况的枚举就可以去除了,其实就是部分枚举.

代码思路:

无详解:

class Solution {
public:int maxArea(vector<int>& height) {int right=height.size()-1;int left=0;;int curvm,maxv=0;while(right>left){curvm=(right-left)*min(height[left],height[right]);maxv=max(maxv,curvm);if(height[right]<height[left]){right--;}else{left++;}}return maxv;}
};

详解和注释:

具体过程还是比较感性的,动态的分析画图也很有效.

知道容器的接口,熟练的使用,写代码更加简单.

class Solution {
public:int maxArea(vector<int>& height) {int right=height.size()-1;//定义左右指针指向int left=0;;int curvm,maxv=0;//当前枚举的面积,和最大面积while(right>left)//从两边向里面遍历{curvm=(right-left)*min(height[left],height[right]);//水桶效应,min的高*宽maxv=max(maxv,curvm);//更新最大值if(height[right]<height[left])// 移动指针:总是移动高度较小的一侧{right--;}else{left++;}}return maxv;}
};

http://www.dtcms.com/a/394531.html

相关文章:

  • QT-串口,完结!
  • Git常用命令合集
  • Qt(模态对话框的切换)
  • QT-模型视图结构
  • C语言 C语句
  • 《理解Reactor网络编程模型》
  • Mirror Maze 镜面反射
  • 一个案例弄懂nfs
  • 在飞牛NAS使用Lucky做动态解析到域名?
  • 多实例 MySQL 部署
  • 使用批处理脚本快速切换 Claude API 实现多平台环境配置
  • SkyDiffusion:用 BEV 视角打开街景→航拍图像合成新范式
  • 免费下载适用于 Windows PC 的 Pixologic Zbrush 2026
  • 10.eNSP下载及安装教程(2025年9月21日)
  • Qt 实战 之 打包部署
  • QT-文件
  • 2001-2022年全国地级市高铁开通数据
  • TenstoRT加速YOLOv11——C++端加速
  • 面试技巧第三篇:嵌入式操作系统基础考点:任务、调度和中断
  • 简单使用Vanna
  • 【面板数据】各省环境保护支出统计数据集(2007-2023年)
  • 无需格式转换!FileOptimizer将文件体积压至极致的软件
  • 【论文速递】2025年第17周(Apr-20-26)(Robotics/Embodied AI/LLM)
  • Spring Framework 入门:传统 XML 配置启动方式详解
  • 构建AI智能体:四十、K-Means++与RAG的融合创新:智能聚类与检索增强生成的深度应用
  • Python 中,判断元素是否存在于列表(list)和判断键是否存在于字典(dict)
  • 如何在 Windows 上恢复已删除/未保存的 PowerPoint 文件 - 4 种快速方法
  • 【含文档+PPT+源码】基于过滤协同算法的城市旅游网站的设计与实现
  • week 2
  • Core Animation基础