news 2026/4/17 13:44:51

盛水最多的容器(滑动窗口 双指针)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
盛水最多的容器(滑动窗口 双指针)

这道题当然可以暴力求解,O(N^2),但是有时候并不会通过,因此要想一个时间复杂度为O(N)的方法。如果说用滑动窗口肯定会有人会有疑问,这怎么用?下面直接说解法:

首先left与right分别指向数组的两边,计算当前矩形面积大小记录,哪一个对应的值小,哪个向中间移动,记录当前矩形面积,更新最大矩形面积,以此类推。

那么如何证明这种贪心性的正确性呢?

假设初始状态下,右指针left对应数组数字为x与左指针right对应y,left<right,并且有x<=y,那么这时矩形面积由min(x,y)*(right-left)得出,如果我们不动left,而是让右指针向左移动,无论怎么都不可能使得新矩形面积大于现在的面积,所以要让较小的left向中间移动。此时问题的规模减小1,又变成了新的问题。直到问题规模减为0。相当于是从一堆极值(每一个规模中)中找到一个最大值!

class Solution { public: int maxArea(vector<int>& height) { int max=0; int left=0; int right=height.size()-1; int cur; while(left<right){ cur=min(height[left],height[right])*(right-left); max=max>cur?max:cur; if(height[left]<height[right]) left++; else right--; } return max; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 17:23:13

Qt主窗体关闭与quit()的退出机制差异

1.记忆要点1.关闭窗体关键判断&#xff1a;Qt内部会检查当前活跃窗口数量。若这是最后一个顶层窗口&#xff08;QApplication::topLevelWindows()返回空&#xff09;&#xff0c;则自动调用QApplication::quit()&#xff1b;否则程序继续运行&#xff08;如存在其他独立窗口&am…

作者头像 李华
网站建设 2026/4/16 23:28:09

基于SSM框架的宠物共享平台设计与实现【高分】

如果你需要计算机开发、大数据、人工智能或信息安全方面的专业支持&#xff0c;我可以为你提供高质量、性价比突出的解决方案。 下拉到文章底部添加微信即可联系我。 高效负责、结果导向、保证通过。 绪论 需求分析 角色分析 非功能分析 可行性分析 系统设计 功能图 数据库 …

作者头像 李华
网站建设 2026/4/16 16:07:01

29、Python 进程与线程管理全解析

Python 进程与线程管理全解析 1. 替代复杂 Shell 管道的方法 在处理复杂的 Shell 管道时,我们可以使用内置的替代方法。例如,使用 pwd 模块来替代 Subprocess 进行一些操作。以下是具体示例: import pwd pwd.getpwnam(root) # 输出: (root, ********, 0, 0, System A…

作者头像 李华
网站建设 2026/4/17 3:11:28

大屏互动游戏——2026「马上抱富」

熹乐互动2026年「马上抱富」摇一摇大屏互动游戏&#xff0c;依托分布式架构边缘计算核心技术底座&#xff0c;攻克行业高并发场景下的延迟、卡顿痛点&#xff0c;为年会、品牌营销等场景打造极致流畅的互动体验&#xff0c;用技术实力赋能商业价值爆发。1. 毫秒级实时同步&…

作者头像 李华
网站建设 2026/4/16 21:10:50

19、Python 文件与目录操作:从比较到同步的全方位指南

Python 文件与目录操作:从比较到同步的全方位指南 在数据处理和管理的过程中,经常会遇到需要比较、合并目录,查找重复文件,进行模式匹配以及同步数据等问题。Python 提供了丰富的工具和方法来解决这些问题,下面将详细介绍相关的操作和技术。 1. 目录比较与合并 在 Pyth…

作者头像 李华