[LeetCode] 11. Container With Most Water

传送门

Description

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Note: You may not slant the container and n is at least 2.

思路

题意:给出一些垂直于 x 轴的线段,求取两条线段与 x 轴围成的区域的最大面积

题解:区域宽度最大值即为前后两个终端的线段的距离,因此从前后两个终端线段向中间推进,更新区域面积的最大值。推进的策略是,下一轮前进的一方终端线段为这一轮中线段最短的那方,可以知道,依据这种策略的推进可以找到区域面积最大值,因为假定推进的一方为这一轮线段中的最大值,那么在下一轮中宽度小于上一轮的宽度,而高度依然小于上一轮线段的高度(高度取两条线段高度的最小值),因此所求的面积必然小于上一轮求得的区域面积。

 

  

posted @   zxzhang  阅读(186)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航