「优选算法刷题」:盛最多水的容器

一、题目

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

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

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

说明:你不能倾斜容器。

示例 1:

输入:[1,8,6,2,5,4,8,3,7]
输出:49 
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 2:

输入:height = [1,1]
输出:1

二、思路解析

这道题还蛮有意思的,短板效应大家都听说过吧,经常被用于说明人们身上缺点的重要性。

而它的本义,指的是,决定木桶容积的,不是最长那块木板,相反,而是最短的那块。

所以,这道题容积中,其实就可以利用 双指针 遍历数组。

宽度则是两个指针相减,高度则是在这两个指针范围内,最短的那个数。

三、完整代码

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

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/415768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI接口】语音版、文心一言大模型和AI绘图、图片检测API

文章目录 一、语音版大模型AI1、接口2、请求参数3、请求参数示例4、接口返回示例 二、AI图片鉴黄合规检测API1、接口2、请求参数3、请求参数示例4、接口返回示例5、报错说明6、代码开源 三、人工智能AI绘画API1、接口2、请求参数3、请求参数示例4、接口返回示例5、AI绘画成果展…

字符串系列之滑动窗口

大家好&#xff0c;滑动窗口算法一般是作用在字符串或者数组上&#xff0c;通过不断的滑动逻辑窗口&#xff0c;在特定窗口大小内进行计算的过程。滑动窗口的方式可以降低时间复杂度&#xff0c;从而减短计算的执行时间。 比如说在字符串s"5189623196" 中&#xff0…

【51单片机Keil+Proteus8.9】AT89C51+7段数码管两位计数器

两位计数器显示 设计思路 电路设计 使用AT89C51单片机&#xff0c;外部引出两个管脚P3^3和P3^4当作按钮分别作为start和stop&#xff0c;对计时状态进行控制&#xff0c;由于是两位计数器&#xff0c;引出两个管脚P3^0和P3^1作为两个数码管的片选信号&#xff0c;工作时快速…

每日温度00

题目链接 每日温度 题目描述 注意点 列表对应位置的输出为&#xff1a;要想观测到更高的气温如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替 解答思路 利用栈先进后出的特点将低温度的下标存储到栈中&#xff0c;如果当前温度比栈顶下标对应温度更高&#…

2024--Django平台开发-订单项目管理用户认证+动态菜单+权限控制(十三)

day13 订单管理项目开发 1.表结构设计 1.1 abstract类 from django.db import modelsclass ActiveBaseModel(models.Model):active models.SmallIntegerField(verbose_name"状态", default1, choices((1, "激活"), (0, "删除"),))class Meta:…

【Java】HttpServlet类中前后端交互三种方式(query string、form表单、JSON字符串)

在前后端的交互中&#xff0c;前端通过以下三种方式来与后端进行交互&#x1f31f; ✅query string ✅form表单 ✅JSON字符串 下面我们将书写这三种方式的后端代码并进行讲解 1、Query String QueryString即在url中写入键值对&#xff0c;一般用doGet方法进行交互 代码如下 …

『MySQL快速上手』-⑩-索引特性

文章目录 1.索引的作用2.索引的理解建立测试表插入多条记录查看结果 2.1 MySQL与磁盘交互的基本单位2.1 为何IO交互要是 Page2.3 理解单个Page2.4 理解多个Page2.5 页目录2.6 单页情况2.7 多页情况2.8 B vs B2.9 聚簇索引 vs 非聚簇索引非聚簇索引聚簇索引 3.索引操作3.1 创建主…

Redis实战之-分布式锁

一、基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#xff0c;让程序串行…

『Open3D』1.10 Tensor数据处理

open3d中实现了自身的数据类型,用于open3d中内部算法的数值计算,但基础使用上与numpy类似。 目录 1、tensor创建 2、tensor数据属性 3、 Tensor数据在CPU与GPU上的转换

51单片机中断系统编程

一.外部中断 1.编程思想 中断准备&#xff1a;中断初始化函数打开中断开关 &#xff0c;选择中断传输方式中断处理&#xff1a;为了便于观察&#xff0c;让我们知道单片机进入中断处理函数&#xff0c;在这里我们选择打开流水灯电路搭建&#xff1a;由于P3^3引脚不便直接接地…

用LED数码显示器循环显示数字0~9

#include<reg51.h> // 包含51单片机寄存器定义的头文件 /************************************************** 函数功能&#xff1a;延时函数&#xff0c;延时一段时间 ***************************************************/ void delay(void) { unsigned …

C语言总结十二:文件操作详细总结

在操作系统中&#xff0c;为了统一对各种硬件的操作&#xff0c;简化接口&#xff0c;不同的硬件设备也都被看成一个文件。对这些文件的操作&#xff0c;等同于对磁盘上普通文件的操作。我们不去探讨硬件设备是如何被映射成文件的&#xff0c;把任意 I/O 设备&#xff0c;转换成…