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

LeetCode 11 - 盛最多水的容器

思路

容器面积由 宽度短板高度 决定。最优解一定藏在不断收窄宽度的过程中。

  1. 初始化left 指针在数组头部,right 指针在尾部。这是最宽的可能。
  2. 移动策略:比较 height[left]height[right]
    • 面积受限于短板。若移动长板,宽度变小,高度不变(或变小),面积必然减小。
    • 因此,必须移动短板对应的指针。这虽然牺牲了宽度,但给了我们寻找更高板子的机会,面积才有可能增大。
  3. 迭代:循环此过程,持续更新最大面积,直到两指针相遇。
C++ 代码实现
class Solution {
public:int maxArea(vector<int>& height) {int left = 0;int right = height.size() - 1;int maxArea = 0;while (left < right) {int currentArea = min(height[left], height[right]) * (right - left);maxArea = max(maxArea, currentArea);if (height[left] < height[right]) {left++;} else {right--;}}return maxArea;}
};
复杂度
  • 时间复杂度: O(n)leftright 指针总共只会遍历数组一次。
  • 空间复杂度: O(1),仅使用常数个变量。
http://www.lryc.cn/news/604269.html

相关文章:

  • VUE进阶案例
  • RabbitMQ 消息持久化的三大支柱 (With Spring Boot)
  • Hyperchain账本数据存储机制详解
  • C++:stack与queue的使用
  • AI应用:电路板设计
  • [mcp: JSON-RPC 2.0 规范]
  • Excel文件批量加密工具
  • 【LeetCode 随笔】
  • flask使用celery通过数据库定时
  • 【C语言进阶】题目练习
  • 深入理解 Qt 元对象系统 (Meta-Object System)
  • 最新优茗导航系统源码/全开源版本/精美UI/带后台/附教程
  • Linux定时器和时间管理源码相关总结
  • 进阶向:Manus AI与多语言手写识别
  • Python 程序设计讲义(27):字符串的用法——字符串的常用操作
  • 快速了解逻辑回归
  • Kubernetes自动扩容方案
  • Linux 系统启动与 GRUB2 核心操作指南
  • BreachForums 黑客论坛强势回归
  • 【数据结构】用堆实现排序
  • Typecho handsome新增评论区QQ,抖音,b站等表情包
  • python基础:request请求Cookie保持登录状态
  • 关于算法的一些思考
  • PyCharm插件开发与定制指南:打造个性化开发环境
  • Vulnhub napping-1.0.1靶机渗透攻略详解
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • JDK17 新特性跟学梳理
  • 深入解析Java元注解与运行时处理
  • [leetcode] 组合总和
  • C++多态:面向对象编程的灵魂之