当前位置: 首页 > news >正文

【LeetCode最详尽解答】11-盛最多水的容器 Container-With-Most-Water

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家!

链接:

  • 11-盛最多水的容器

直觉

这个问题可以通过可视化图表来理解和解决。

通过图形化这个问题,可以简化解决过程。我们可以使用双指针技术来解决它。起初,左指针设置在数组的起点,右指针设置在数组的终点。目标是找到最大的可能面积,这个面积受指针指向的较短高度的限制。面积可以通过公式 min(height[left], height[right]) * (right - left) 计算。容器的高度受较短的两个高度之一限制。

为了最大化面积,我们应该移动指向较短高度的指针。这是因为移动指向较高高度的指针不会有助于找到更大的面积,因为容器的高度仍然会受较短高度的限制。具体来说,新高度将是 min(height[left], height[new_right]),它将小于或等于之前的较短高度,并且间隔距离也会缩小。因此,如果左指针指向较短高度,我们将其向右移动。相反,如果右指针指向较短高度,我们将其向左移动。

方法

  1. 初始化两个指针:左指针在数组起点,右指针在数组终点。
  2. 初始化一个变量 res 来存储最大面积。
  3. 使用公式 res = max(res, min(height[left], height[right]) * (right - left)) 来计算面积并更新 res
  4. 移动指向较短高度的指针以尝试找到更大的面积。
  5. 设置提前停止条件:设 h 为数组中的最大高度。如果 (right - left) * h 小于 res,则意味着不可能找到更大的面积,因此我们可以跳出循环。

复杂度

  • 时间复杂度:
    O ( n ) O(n) O(n)
    • 我们只用两个指针遍历数组一次,时间复杂度为线性。
  • 空间复杂度:
    O ( 1 ) O(1) O(1)
    • 无论输入大小如何,我们只使用了常量空间。

代码

class Solution(object):def maxArea(self, height):""":type height: List[int]:rtype: int"""l = 0r = len(height) -1h = max(height)res = 0while l < r:if (r-l) * h <= res:breakres = max(res, min(height[l],height[r]) * (r-l))if height[l] <= height[r]:l+=1elif height[l] > height[r]:r-=1return res  
http://www.lryc.cn/news/377750.html

相关文章:

  • redis 缓存jwt令牌设置更新时间 BUG修复
  • nginx精准禁止特定国家或者地区IP访问
  • 单片机课设-基于单片机的电子时钟设计(仿真+代码+报告)
  • .net 6 api 修改URL为小写
  • Windows电脑部署Jellyfin服务端并进行远程访问配置详细教程
  • rsync同步目录脚本
  • LeetCode 6. Z 字形变换
  • RTC实时时钟
  • WHAT - React 学习系列(一)
  • 代理模式(静态代理/动态代理)
  • Word2Vec基本实践
  • IIS配置網站登錄驗證,禁止匿名登陸
  • 抖音矩阵系统搭建,AI剪辑短视频,一键管理矩阵账号
  • 山东大学软件学院创新项目实训开发日志——收尾篇
  • vue2.7支持组合式API,但是对应的vue-router3并不支持useRoute、useRouter。
  • 摊位纠纷演变肢体冲突,倒赔了500:残疾夫妇与摊主谁之过?
  • 深入理解和实现Windows进程间通信(消息队列)
  • Web网页前端教程免费:引领您踏入编程的奇幻世界
  • 北斗短报文终端在应急消防通信场景中的应用
  • Java跳动爱心代码
  • Swift Combine — Operators(常用Filtering类操作符介绍)
  • Windows11+CUDA12.0+RTX4090如何配置安装Tensorflow2-GPU环境?
  • 韩顺平0基础学Java——第27天
  • YesPMP探索Python在生活中的应用,助力提升开发效率
  • TikTok账号运营:静态住宅IP为什么可以防封?
  • linux系统宝塔服务器temp文件夹里总是被上传病毒php脚本
  • HTML+CSS+PHP实现网页留言板功能(需要创建数据库)
  • 【谷歌】实用的搜索技巧
  • 打造完美启动页:关键策略与设计技巧
  • 电子书(chm)-加载JS--CS上线