【每天学习一点算法 2026/04/23】盛最多水的容器

每天学习一点算法 2026/04/23

题目:盛最多水的容器

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

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

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

说明:你不能倾斜容器。

要想容纳最多的水,就要宽度足够的同时保证两侧的线足够长。

我们可以利用双指针来解这道题,首先两个指针指向 height 数组两端计算容量,如果要使容量变大只能移动较小的那一个指针,然后再次计算容量跟之前的容量作比较取较大值,这样一直移动到两个指针相遇这样就能得出最大容量。

typescript 复制代码
function maxArea(height: number[]): number {
  let left = 0, right = height.length - 1 // 初始化左右指针
  let res = 0 // 结果
  // 循环计算容量
  while (left < right) {
    const min = Math.min(height[left], height[right]) // 获取最短线
    const current = (right - left) * min // 计算当前容量
    res = Math.max(res, current) // 保存较大容量值
	// 比较并移动指针
    if (height[left] > height[right]) {
      right--
    } else {
      left++
    }
  }
  return res
};

题目来源:力扣(LeetCode)

相关推荐
Omics Pro5 分钟前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理
代数狂人6 分钟前
机器学习数学基础──从零开始 导读
人工智能·算法
qeen878 分钟前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
Zane19941 小时前
暴力字符串匹配失配就要把文本指针往回拉,KMP凭什么能让它一直往前走
算法
陈年老古董1 小时前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
旺仔小馒头wang1 小时前
AI 智能手机发布会:赋予人类的五种新能力
人工智能·学习·音视频
人工智能培训1 小时前
未来三年,AI 落地的五个确定性判断
大数据·人工智能·学习·生活·ai写作
LONGZETECH1 小时前
一线职教实测:风光 580 汽车故障诊断仿真系统,破解实车实训四大核心痛点
人工智能·学习·安全·架构·汽车
彧azz2 小时前
操作系统时间管理与系统核心板块学习总结
c语言·笔记·学习·系统架构