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

盛最多水的容器,leetCode热题100,C++实现

题目来源:leetCode

11. 盛最多水的容器 - 力扣(LeetCode)

解法

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

双指针法,我们可以发现,容器的水量 = 宽度 × min(左高, 右高)

所以移动较高的一边不会增加水量

  • 如果移动较高的那边,宽度减小,但高度不会超过原来的较矮值

  • 水量只会减少或不变

移动较矮的一边可能增加水量

  • 虽然宽度减小,但可能找到更高的边

  • 有机会获得更大的 min(新高度, 另一边高度)

大家可以用[1,2,3,4,5]这个数组自己想一下。

为什么right指针是size-1,而不是0?

  1. 最大化宽度:一开始就有最大的宽度(n-1)

  2. 逐步优化:通过移动较矮的指针,在宽度减小的同时寻找更高的高度

http://www.xdnf.cn/news/1399609.html

相关文章:

  • 封装哈希表
  • 基于SpringBoot的流浪动物领养系统【2026最新】
  • macOS 15.6 ARM golang debug 问题
  • Rust Web 模板技术~MiniJinja入门:一款适用于 Rust 语言的轻依赖强大模板引擎
  • Fourier 级数展开(案例:级数展开 AND 求和)
  • Prompt Engineering:高效构建智能文本生成的策略与实践
  • 单例模式的mock类注入单元测试与友元类解决方案
  • Android15适配16kb
  • ros2 foxy没有话题问题解决
  • Axios 实例配置指南
  • Keil5 MDK_541官网最新版下载、安装
  • 从 0 到 1 构建零丢失 RabbitMQ 数据同步堡垒:第三方接口数据零丢失的终极方案
  • comfUI背后的技术——VAE
  • 线性代数理论——状态空间
  • 聊一聊耳机串扰-Crosstalk
  • Vue常用指令和生命周期
  • 118、【OS】【Nuttx】【周边】效果呈现方案解析:作用域?
  • 生成一份关于电脑电池使用情况、健康状况和寿命估算的详细 HTML 报告
  • 软考中级习题与解答——第一章_数据结构与算法基础(2)
  • 【Redisson 加锁源码解析】
  • VuePress添加自定义组件
  • 【MySQL数据库】索引 - 结构 学习记录
  • 加速智能经济发展:如何助力“人工智能+”战略在实时视频领域的落地
  • Swift 解法详解:LeetCode 367《有效的完全平方数》
  • Kafka入门
  • 开源 C++ QT Widget 开发(八)网络--Http文件下载
  • 《微服务架构从故障频发到自愈可控的实战突围方案》
  • CSDN博客语法(不常用但有用)
  • 谷歌 “Nano Banana“ 深度解析:AI 图像的未来是精准编辑,而非从零生成
  • ⚡ Linux find 命令参数详解