Leecode盛水最多的容器 超详细解析

简介: Leecode盛水最多的容器 超详细解析

问题描述:


给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水

image.png



问题分析: 初次看到这题 第一个想法就是用贪心:使得容器两侧尽可能高 中间尽可能长 却不知如何是好 后来才发现是审题错了 题目就是要求求最大面积,而不是容器内各个数值的相加  (我把柱子理解成水了......)!!审题真的很重要


根据容器的最大面积(体积)由短板决定,假设起始点x坐标为i,终点为j,板长分别是h[i],[j]

因此可得 S=min(h[i],[j])×(j-i)

不妨考虑向内移动板子(长板或短板)(对撞指针)


image.png

image.png


综上 我们希望容器尽可能大 只需要考虑短板内移的情形 求出最大面积即可


下面呈现代码:


class Solution:
    def maxArea(self, height: List[int]) -> int:
        i,j=0,len(height)-1
        ans=0
        while i<=j:
            S=(j-i)*min(height[i],height[j])
            ans=max(S,ans)
            if height[i]<=height[j]:
                i+=1
            else:
                j-=1
        return ans

核心就在于探索使得S变大的情况?

image.png



我是小郑 期待和你一起进步😄


目录
相关文章
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
697 57
|
弹性计算 监控 API
新浪微博上云实践:极端流量下的峰值应对与架构挑战
在混合云架构中,核心关键是专线,它是实现内部与公有云之间弹性的核心。目前微博和阿里云之间已经拉通了多条专线,日常的核心消息通过多机房的消息组件同步到阿里云缓存中,实现前端层面和缓存层面的弹性伸缩。在混合云的模式下,微博目前采用了两种部署方案。
9323 0
|
8月前
|
人工智能 运维 监控
智能体来了:AI Agent 时代技术从业者的焦虑拆解与能力重构指南
本文剖析AI Agent兴起引发的职业焦虑,指出其本质是技术范式从“工具调用”跃迁至“自主系统”的价值重构。文章拆解智能体四大工程能力,定义“AI Agent搭建师”新角色,提出三维转型路径,助力开发者从功能实现者升级为智能系统设计者。(239字)
548 5
|
8月前
|
存储 消息中间件 监控
API集成方案:淘宝多店铺管理,统一运营!
本文探讨如何通过淘宝开放平台API集成,构建多店铺统一运营系统。解决数据分散、操作重复、协同困难等痛点,实现商品、库存、订单、会员及营销的集中管理与自动化操作,提升效率、降低成本,并为智能化决策提供支撑,助力电商规模化发展。(238字)
|
11月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
上下文选择器(迭代选择器):基于祖先或同胞元素选择一个元素 ID和类选择器:基于id#和class的属性值进行选择元素。 属性选择器:基于属性的有无和特征进行选择。 ①上下文选择器: 上下文选择器的语法格式:标签1 标签2{属性:值;} //注意:组合选择器和上下文选择器的区别,组合选择器以逗号隔开, 上下文选择器以空格隔开 ②特殊的上下文选择器 子选择器> : 语法格式:标签1>标签2 解释说明:标签1和标签2
615 1
|
8月前
|
机器学习/深度学习 算法 小程序
从 GAN 到 Diffusion:移动端图像去水印算法的“算力突围”实战解析
深度解析图像修复(Image Inpainting)技术的演进。探讨如何在微信小程序 2MB 包体积限制下,利用 Serverless 架构实现快速去水印推理。“香蕉一键去水印”的技术架构案例分析。
|
8月前
|
负载均衡 容灾 JavaScript
Nginx反向代理容灾备份(手把手教你搭建高可用Web服务)
本文介绍如何通过Nginx反向代理实现容灾备份与高可用架构。利用upstream模块配置主备服务器,结合健康检查与自动故障转移,确保主服务宕机时无缝切换至备用服务器。图文详解参数设置、配置步骤及测试方法,并提供Keepalived、HTTPS等进阶优化建议,助小白快速搭建稳定可靠的Web系统。
|
8月前
|
缓存 JSON 数据安全/隐私保护
58 同城 item_search - 获取搜索数据接口对接全攻略:从入门到精通
58同城item_search接口是本地生活全品类信息检索核心,支持房产、招聘、二手车等多业务线筛选,具备实时性强、维度丰富、统一适配等特点。通过HTTPS+AppKey/Secret认证,返回JSON/XML格式数据,需配合city_list与item_get实现完整数据链路。本攻略涵盖权限申请、签名认证、Python对接、调试排错及生产优化,助力高效稳定接入。
|
9月前
|
传感器 人工智能 安全
【口碑排行】 甲方真实的投票:售后服务场景下,客户满意度最高的语音机器人品牌盘点
在2025大模型落地元年,语音机器人成为售后数字化转型关键。本文基于IDC、信通院等权威数据,从交互自然度、业务闭环、工程化交付三大维度,盘点主流服务品牌,助力企业选型实现降本增效与95%以上客户满意度双目标。
|
11月前
|
存储 消息中间件 缓存
redis
Redis:数字时代的“高速工作记忆”,以内存存储与丰富数据结构实现微秒级响应,广泛应用于缓存、会话管理、排行榜、消息队列等场景,兼具高性能与高扩展性,是现代应用架构不可或缺的性能加速器。