当前位置: 首页 > 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.xdnf.cn/news/1211491.html

相关文章:

  • Vue.js 指令系统完全指南:深入理解 v- 指令
  • python的进程、线程、锁
  • DNS污染与劫持
  • Wndows Docker Desktop-Unexpected WSL error错误
  • 项目历程—生命数组游戏(两版本)
  • Vulkan入门教程 | 第二部分:创建实例
  • “非参数化”大语言模型与RAG的关系?
  • 并查集介绍及典型应用和编程题
  • [Linux入门] Linux 部署本地 APT 仓库及 NFS 共享服务全攻略
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • 【LeetCode 随笔】
  • centos7安装Docker
  • 基于三台主机搭建 Web 服务环境:Nginx、NFS 与 DNS 配置全流程
  • 【牛客网C语言刷题合集】(五)——主要二进制、操作符部分
  • SQL158 每类视频近一个月的转发量/率
  • C++:stack与queue的使用
  • Leetcode-3152 特殊数组 II
  • 进阶向:Manus AI与多语言手写识别
  • 【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(5)——Tool Calling(工具调用)
  • scrapy框架新浪新闻
  • 【大语言模型入门】—— Transformer 如何工作:Transformer 架构的详细探索
  • 用LangGraph实现聊天机器人记忆功能的深度解析
  • k8s搭建nfs共享存储
  • AI应用:电路板设计
  • Linux 线程概念与控制
  • Excel文件批量加密工具
  • Intellij Idea--解决Cannot download “https://start.spring.io‘: Connect timedout
  • 爬虫自动化:一文掌握 PyAutoGUI 的详细使用
  • Kruskal算法
  • 智能Agent场景实战指南 Day 23 : Agent安全与隐私保护