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

11. Container With Most Water 盛最多水的容器

原题链接:https://leetcode.com/problems/container-with-most-water/
找出在n条垂直于x轴的线中能够组成的最大容器面积的两条线,容器不能倾斜,n的最小值为2.

解题思路:
1.暴力破解
设起始点为i,终点为j,找到能使面积最大的i和j。

classSolution:defmaxArea(self,height:List[int])->int:max_area=0foriinrange(len(height)):forjinrange(len(height)-1,i,-1):cur_area=min(height[i],height[j])*(j-i)ifcur_area>max_area:max_area=cur_areareturnmax_area

测试的时候发现这个方法虽然可行但是超时了…试图用动态规划来解决,但是好像也不是很可行, 运行的时候栈溢出了。最后看了答案,感觉答案里给出的这个思路还是有点难想到的。

设置两个指针i和j,分别代表第一条线和最后一条线。比暴力搜索优化的地方在于,当计算完当前面积的时候,比较一下i和j的大小,如果i > j, i = i + 1,如果i < j 的话,j = j -1。
这样做的原因是,每次i或者j向内移动, j - i都会随之变小,面积也会变小,所以需要保留相对高的高度来抵消j - i的变小

然后自己按照答案的思路实现了一下:

classSolution:defmaxArea(self,height:List[int])->int:max_area=i=0j=len(height)-1whilei<j:cur_area=min(height[i],height[j])*(j-i)ifcur_area>max_area:max_area=cur_areaifheight[i]<height[j]:i+=1else:j-=1returnmax_area

有一个意外的发现:在python里用max函数比写if else的条件语句还要慢···

http://www.jsqmd.com/news/1282578/

相关文章:

  • CFBP神经网络在数据分类中的MATLAB实现与优化
  • [深入解析C#] 第 11 章:使用元组进行组合
  • 2026年GEO行业AI搜索引擎优化趋势与技术解析
  • 从零开始:如何用MIT App Inventor在30分钟内制作你的第一个手机应用
  • 表面粗糙度分析
  • 想要自动化一定不能从网页下载短视频APP-----例如抖音
  • 南京浮雕工艺手镯首饰回收,资深鉴定师上门核算首饰整体价值 - 每日生活报
  • 从加拿大议员AI演讲事件看LLM提示词泄露与公共领域应用安全
  • 海南俱乐部管理软件选型的技术判断与核验要点
  • 终极视频合成指南:ComfyUI-VideoHelperSuite VHS_VideoCombine节点完全解析
  • 1.10- 异常处理 try except
  • js验证ip的合法性,多个固定IP,多个IP段,IP通配符
  • 从蒸汽求职案例中,能看出服务方法是否稳定吗?
  • 2026倾角传感器选型推荐指南:聚焦综合能力,构筑长期技术竞争力,激光雷达/激光测距/陀螺仪,倾角传感器实力厂家哪个好 - 品牌推荐师
  • 布林画线 同花顺期货通指标
  • 美食竞技赛事策划与运营全解析
  • 计算机毕业设计之基于Java的亲子互动系统设计与实现
  • 停止所有新闻类APP自动评价
  • 关于Formdata的使用心得
  • QQ空间说说备份终极指南:GetQzonehistory免费工具完整教程
  • 3分钟找回QQ空间全部历史说说的终极免费工具使用指南
  • C++修仙指南:从零开销抽象到智能指针,掌握核心心法与实战神通
  • 北京西城贵金属旧饰品浏览,材质特性作为评估核心 - 生活时报
  • 图片文件太大怎么办?五种有效压缩方法轻松减小图片大小
  • AMAT 0100-20157 PCB 加载器
  • CentOS 7 部署LNMP环境
  • QT遇到问题
  • TPIC7710EVM评估板:汽车电子电机驱动ASIC的硬件设计与软件实战指南
  • 100dB的喇叭回音,一颗23mm的小模组就解决了——怎么做到的?
  • MediaCrawler:用 CDP 模式绕开 JS 逆向的多平台社媒爬虫深度解析