【每天学习一点算法 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)

相关推荐
xian_wwq1 分钟前
【学习笔记】Context Engineering,AI Agent 真正的内存管理-4/16
笔记·学习·context
马拉AI11 分钟前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
寒月小酒42 分钟前
AnythingLLM 学习
学习
地平线开发者2 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者2 小时前
【征程6】校准量化中HistogramObserver解析
算法
OuO-23 小时前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
程序喵大人3 小时前
【C++进阶】STL算法与函数对象 - 04 find、count和any_of把查询写成意图
开发语言·c++·算法
豆沙沙包?3 小时前
c++中引用(P7-P11)
java·c++·算法
不会代码的小猴4 小时前
标准模板库(STL)
开发语言·c++·笔记·算法
ZhouDevin4 小时前
算法论文/高效微调4——DoRA:权重分解的低秩适配方法
算法