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

LeetCode—11. 盛最多水的容器(中等)

题目描述:

给定一个长度为 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。

题目解析:

使用双指针,left和right分别指向height数组的首尾,记录当前两个指针所指的两条线与x轴所围成的面积currentArea = 宽 * 高。宽为right - left,高为两条线中较短的一条的高度即Math.min(height[left],height[right])。不断更新最大值maxArea=Math.max(maxArea,currentArea),以及找到更高的一条线:

  • 如果height[left] < height[right],则left++
  • height[left] > height[right],right--。

实现代码:

class Solution {public int maxArea(int[] height) {int left = 0,right = height.length - 1;int maxArea = 0;while(left < right){int width = right - left;int currentArea = (Math.min(height[left],height[right])) * width;maxArea = Math.max(maxArea,currentArea);if(height[left] < height[right]){left++;}else right--;}return maxArea;}
}

http://www.lryc.cn/news/497589.html

相关文章:

  • 第一部分:入门准备 1.欢迎来到新手村 --[JavaScript 新手村:开启编程之旅的第一步]
  • BERT的中文问答系统50
  • 深入解析CMake中的find_package命令:用法、特性及版本依赖问题
  • 【OpenDRIVE_Python】使用python脚本输出OpenDRIVE数据中含有隧道tunnel的道路ID和隧道信息
  • SIP系列五:HTTP(SIP)鉴权
  • mysql json整数数组去重 整数数组精确查找并删除相应数据
  • 【5G】技术组件 Technology Components
  • 数据结构4——栈和队列
  • PHP SM4 加密
  • leetcode - 2825. Make String a Subsequence Using Cyclic Increments
  • 工业—使用Flink处理Kafka中的数据_ChangeRecord1
  • 探索嵌入式硬件设计:揭秘智能设备的心脏
  • 数据结构-最小生成树
  • mac启动jmeter
  • spring学习笔记之静态代理和动态代理
  • qemu搭建aarch64
  • delphi IDE 插件DelphiIDEPlugin_SearchProject,用于从项目组中查找项目
  • 【Vue】Scoped、组件间通信、Props检验
  • openbmc dbus架构简析(二)
  • 【二分查找】Leetcode例题
  • gitlab配置调试minio
  • Vue实战技巧:如何展示附件(PDF、MP4、Excel、Zip等)并修改名称下载
  • AI证件照制作 API 对接说明
  • Macos用brew安装Nodejs亲手教程
  • Node.js 新手教程
  • Latex转word(docx)或者说PDF转word 一个相对靠谱的方式
  • 前端热门面试题目——React、Node
  • Ansible自动化一键部署单节点集群架构
  • 电脑插入耳机和音响,只显示一个播放设备
  • 家政小程序开发,打造便捷家政生活小程序