用最自然的思路结构算法题——1.盛最多水的容器(滑动窗口)
一、题目二、解析1.基本思路首先搞清楚最基本的解题思路。要求“最大储水量”把每一种情况的储水量算出来遍历所有情况即可。那么怎么算储水量呢容积底×高Vs*h注意此处的h是当前区间左右端点的较小值若将区间命名为 [left , right]则 sright - left , h min (height [left] , height[right])。使用最基础的遍历解法如图从左到右进行遍历即可。操作次数形成等差数列易知时间复杂度为O(n^2)。是否有规律可以减少时间复杂度2.寻找规律滑动窗口找单调性**本题的两个特点1.高是两区间端点的较小值 2.操作对象是连续的多个单位区间连续变化时具有单调性。先说第一个特点如上图以0为固定点进行遍历时假设最开始0处值较小hheight[0]若从左向右遍历则有两种情况。区间变化后当右端点的值较大时hheight[0]若右端点值较小则hheight[right]注意此时hheight[0]。若连续出现情况一则随着从左向右遍历底s变大V就变大若连续出现情况二随着从左向右遍历虽h变小但s变大无法判断V的变化。此时结合上第二个特点由于操作对象是连续的多个单位区间连续变化时具有单调性。起初采用“扩大区间”即区间从左向右扩张使s单调递增。但由于h在变化过程中是非严格递减的故单调递增的s不利于V的单调性的形成。倘若我们采用“缩小区间”遍历的方法则s单调递减配合上h的非严格单调递减则V就形成了“非严格单调递减”的单调性注意“最开始h为0处的值”这一点非常重要只有以较小值端点为固定点才能形成单调性。若一开始7处值较小则h最开始为height[7]若此时区间由[0,7]变化为[0,6]则hheight[0]或者height[6]此时已知“ height[0] height[7] ”若现在hheight[0]则s变小但h变大若hheight[6]即“ height[0] height[6] ”但无法确定height[6]和height[7]的大小关系故V不一定由单调性。总结区间收缩时一定要以值较小的端点为固定点。综上我们进行缩小区间的遍历方法。从[0,7]开始右端点内收s递减。如前面的分析一样若初始右端点值较大则hheight[0]。之后收缩的过程中s一定减小h不变或者减小故V一定非严格单调递减。以0为固定点进行遍历时V一定非严格单调递减意味着V一定不会增大故实际上当我们采用“收缩区间”遍历的方法时若最开始hheight[0]则区间为[0,7]时的体积就是“左端点为0”时所有情况中V最大的时候。所以我们只要计算出区间为[0,7]时的V并记录下来即可此时“左端点为0”的所有情况就相当于遍历完了故将区间左端点右移变成1进入下一轮的判断。假设height[1] height[7]按照前面的规律可知此时应以7为固定点重复之前的规律。我们之前是以”从右向左收缩“为例子进行推断的这里从左向右收缩的时候规律还适用吗没问题二者实质上等价。例如此时0的情况已遍历完成我们可以直接忽略0处的元素将[1,7]看成一个新数组此时这个数组可以随意翻转将[1,7]翻转成[7,1]之后即将进行的从左向右收缩1收缩就变成了从右向左收缩。综上这个规律适用于所有”收缩遍历“的区间。故区间应变成[1,6]。不断重复直到左右端点重合所有情况就遍历完成。易知时间复杂度为O(n)。3.优化解法”获得区间 [left,right]找到两端点的就较小值作为固定点并计算当前的V与Vmax进行比较、更新 --- 根据固定点缩小区间“不断重复该过程直到 left right即可。三、代码class Solution { public: int maxArea(vectorint height) { int left0,rightheight.size()-1,ret0; while(leftright) { int hmin(height[left],height[right]); int wright-left; int vh*w; retmax(ret,v); if(hheight[left]) left; else --right; } return ret; } };

相关新闻

Java工程师的AI工程化落地:Spring AI 2.0 + LangChain4j + RAG实战

Java工程师的AI工程化落地:Spring AI 2.0 + LangChain4j + RAG实战

1. 这不是“Java AI”的拼盘课,而是工程化落地的断层修复你有没有遇到过这样的情况:项目里硬塞进一个大模型API调用,结果上线后响应延迟飙到3秒、用户提问稍复杂就返回“我无法回答”、知识库更新一次要重启整个服务?这不是AI不行…

2026/10/17 0:28:59 阅读更多 →
TaoMate-H3开源实战:三步构建分钟级视频生成流水线

TaoMate-H3开源实战:三步构建分钟级视频生成流水线

1. 内容整体设计与思路拆解1.1 核心需求解析:为什么“三步生成”会成为一个硬需求聊到淘宝TaoMate-H3这个名字,很多人的第一反应是:这又是一个AI生成视频的工具?说实话,我第一次看到项目简介的时候也是这么想的&#x…

2026/10/17 9:11:42 阅读更多 →
让AI代理自动生成可交互架构图:archify技能模块实战解析

让AI代理自动生成可交互架构图:archify技能模块实战解析

在GitHub上逛项目的时候,我被一个叫 archify 的项目勾住了视线。一句话概括:它是一套给 AI 代理用的技能模块,目标是让代理根据你的文字描述或者代码仓库,自动产出一张可交互的架构图。不是那种画完就定死的静态图片,而…

2026/10/12 1:44:57 阅读更多 →

最新新闻

FPGA图像采集实战:OV7670+SDRAM+VGA全链路设计与中值滤波

FPGA图像采集实战:OV7670+SDRAM+VGA全链路设计与中值滤波

简介:这是一套面向FPGA与数字图像处理学习者的完整工程源码,围绕OV7670摄像头采集、SDRAM缓存与VGA显示展开,并集成中值滤波算法,适合电子、集成电路及嵌入式方向的学生与工程师做课程设计、毕业设计或项目练手。资源包共576个文件…

2026/10/19 5:03:09 阅读更多 →
open-code-review:基于CLI与本地LLM的自动化代码评审工具

open-code-review:基于CLI与本地LLM的自动化代码评审工具

1. 这不是又一个“AI写代码”玩具:open-code-review 的真实定位与技术锚点open-code-review 这个名字乍看平平无奇,甚至容易被误读成“开源的代码评审平台”或“某个叫 OpenCodeReview 的 SaaS 工具”。但结合近期高频出现的热词——CLI、LLM、git diffs…

2026/10/19 5:03:09 阅读更多 →
无需改源码:用SQL Server自动接管WINCC配方数据追溯

无需改源码:用SQL Server自动接管WINCC配方数据追溯

上个季度我帮一个客户补配方追溯记录,差点被月底审计卡住。现场用的是WINCC,配方参数量倒不算多,但要从HMI上一个个导出、再拼到Excel里,二十多条配方折腾了一个下午,还有两条因为互相覆盖导错了版本。从那以后我就下了…

2026/10/19 5:03:09 阅读更多 →
基于Android与SpringBoot的人脸识别课堂考勤系统设计与实现

基于Android与SpringBoot的人脸识别课堂考勤系统设计与实现

教室点名这件事,做过老师的都知道有多费劲。五十个人的班,一个个喊名字加答到,快也要三四分钟,还可能有人代答。要是选修课坐满一百多人,光点名就能耗掉半节课。所以我一直在想,能不能让手机自己把人脸认出…

2026/10/19 5:03:09 阅读更多 →
Docker Swarm服务管理与调度策略实战:从Service到Task的集群编排

Docker Swarm服务管理与调度策略实战:从Service到Task的集群编排

1. 为什么服务管理要先想清楚1.1 单机 Docker 的瓶颈在哪里如果你已经有两台以上的 Docker 主机,还在用docker run一台上手动起容器、用docker restart一个个拉起来恢复,那这篇文章值得认真看完。Docker Swarm 的核心,不是简单把你从单机搬到…

2026/10/19 5:03:09 阅读更多 →
零基础转岗网安:从10个简单实训开始的安全入门路线

零基础转岗网安:从10个简单实训开始的安全入门路线

最近总有人问我,零基础到底能不能转岗网安。我一般不直接回答,而是先问一句:你想转的是哪个方向?很多人被问住,因为对网安的想象还停在电影里——黑屋子、黑帽子、咔咔咔敲一串命令行就“进去”了。真实情况是&#xf…

2026/10/19 5:02:08 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →