蓝桥杯训练代码

打印 上一主题 下一主题

主题 1954|帖子 1954|积分 5872

一、盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height) 。
找出此中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最洪流量。
阐明:你不能倾斜容器。
示例 1:


  1. <strong>输入:</strong>[1,8,6,2,5,4,8,3,7]
  2. <strong>输出:</strong>49
  3. <strong>解释:</strong>图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
复制代码
示例 2:
  1. <strong>输入:</strong>height = [1,1]
  2. <strong>输出:</strong>1
复制代码
经典双指针题目

  1. class Solution(object):
  2.     def maxArea(self,height):
  3.         left, right = 0, len(height) - 1  # 初始化双指针
  4.         max_area = 0  # 最大水量
  5.         while left < right:
  6.             # 计算当前容器的水量
  7.             area = (right - left) * min(height[left], height[right])
  8.             # 更新最大水量
  9.             max_area = max(max_area, area)
  10.             # 移动较短的垂线的指针
  11.             if height[left] < height[right]:
  12.               left += 1
  13.             else:
  14.               right -= 1
  15.         return
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表