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

乘最多水的容器python

一、问题描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

输入:[1,8,6,2,5,4,8,3,7]
输出:49 
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

初始化,左右指针分别在容器左右的边界。

若左边的高度小于右边的高度,即无论我们怎么移动右指针,得到的容器的容量都小于移动前容器的容量。移动左边有可能产生更大的容量。

反之亦然。

from typing import List

height =  [1,8,6,2,5,4,8,3,7]
class Solution:
    def maxArea(self, height: List[int]) -> int:
        ans = 0
        left, right = 0, len(height) - 1
        while left < right:
            area = (right - left) * min(height[left], height[right])
            ans = max(area, ans)
            if height[left] < height[right]:
                left += 1
            else:
                right -= 1
        return ans
S = Solution()
print(S.maxArea(height))

二、结果展示

49


http://www.kler.cn/a/401325.html

相关文章:

  • NavVis VLX3的精度怎么去进行验证?【上海沪敖3D】
  • if 语句 和 case 语句
  • 视觉SLAM相机——单目相机、双目相机、深度相机
  • Vue模块化开发的理解
  • Spring Boot 接口防重复提交解决方案
  • MATLAB实现GARCH(广义自回归条件异方差)模型计算VaR(Value at Risk)
  • CSS:高级寄巧
  • 算法--动态规划--环形数组的最大贡献值
  • 邻接多重表、十字链表、边集数组
  • 浅谈电力行业网络安全与防护
  • centos7 安装gitlab
  • 深入理解 Vue 3 的 onLoad 和 onReady 生命周期及相关知识点
  • GNU与开源:塑造数字世界的自由基石
  • 【C++】多态:C++编程的魔法师(1)
  • tdengine学习笔记-整体架构及docker安装
  • ([LeetCode仓颉解题报告] 661. 图片平滑器
  • 深入探索Python数据可视化:自定义颜色映射、标签与进阶技巧
  • gitHub常用操作
  • 论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)
  • 从零开始打造个人博客:我的网页设计之旅
  • Jmeter中的后置处理器(一)
  • 计算机中的网络安全
  • sql 根据身份证号获取出生日期并转成对应格式
  • 3 设计模式原则之依赖倒置原则
  • RNN公式解释:实现记忆功能;RNN的状态向量
  • 如何在matlab中将数据打印到csv格式文件中?