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

[盛最多水的容器]

在这里插入图片描述

思路分析

使用 双指针法 解决了 “盛最多水的容器” 问题,目标是找到两条垂直线,使得它们与 x 轴构成的容器能容纳最多的水。

1. 初始化
int max = 0;          // 记录当前最大容量
int left = 0;         // 左指针(起始位置)
int right = n - 1;    // 右指针(末尾位置)
  • 变量作用
    • max:动态更新最大容量。
    • leftright:分别从数组的两端向中间移动。
2. 双指针移动逻辑
while (left < right) {// 计算当前容量并更新最大值if (min(height[left], height[right]) * (right - left) > max) {max = min(height[left], height[right]) * (right - left);}// 移动指针if (height[left] < height[right]) {left++;} else {right--;}
}
  • 容量计算
    • 当前容量 = min(height[left], height[right]) * (right - left)
      • 高度由较短的一边决定(木桶效应)。
      • 宽度为 right - left
  • 指针移动规则
    • 谁短移动谁
      • 如果 height[left] < height[right],则 left++(试图找到更高的左边界)。
      • 否则 right--(试图找到更高的右边界)。
class Solution {
public:int maxArea(vector<int>& height) {int max=0;int n=height.size();int left=0;int right=n-1;while(left<right){if(min(height[left],height[right])*(right-left)>max){max=min(height[left],height[right])*(right-left);}if(height[left]<height[right]){left++;}else{right--;}}return max;}
};
http://www.dtcms.com/a/319371.html

相关文章:

  • WPS定制设置成绿色软件
  • Go语言Ebiten坦克大战
  • ADC常用库函数(STC8系列)
  • 现代制冷系统核心技术解析:从四大件到智能控制的关键突破
  • 客户管理系统的详细项目框架结构
  • 从房地产企业运作观企业能力建设
  • (第八期)VS Code 网页开发入门指南:从零开始掌握前端开发工具
  • Leetcode——菜鸟笔记2(移动0)
  • 92. 反转链表 II
  • 【实时Linux实战系列】实时分布式计算架构的实现
  • DataEase官方出品丨SQLBot:基于大模型和RAG的智能问数系统
  • 机柜指示灯识别误报率↓85%:陌讯多模态融合算法实战解析
  • Linux 内核:节点创建汇总
  • NFS 服务器
  • 【运维进阶】NFS 服务器
  • 16.Home-懒加载指令优化
  • .NET 10 新增功能系列文章5——C# 14 中的新增功能
  • latex in overleaf快速通关论文排版
  • E频段无线射频链路为5G网络提供高容量回程解决方案 — 第一部分
  • Linux(17)——Linux进程信号(下)
  • 【RabbitMQ面试精讲 Day 14】Federation插件与数据同步
  • 剑指offer第2版——面试题1:赋值运算符函数
  • 《常见高频算法题 Java 解法实战精讲(2):堆栈与递归》
  • 【RabbitMQ面试精讲 Day 15】RabbitMQ故障转移与数据恢复
  • Java快速入门:包(Package)与导包(import)详解
  • PyTorch LSTM文本生成
  • VC6800智能相机:赋能智能制造,开启AI视觉新纪元
  • 一个设备或系统能够同时管理和监控两个摄像头的配
  • 基于Python+Vue+Mysql实现(物联网)智能大棚
  • Linux文件操作与用户管理