首页 > 其他分享 >11.盛最多水的容器

11.盛最多水的容器

时间:2022-11-13 14:12:41浏览次数:39  
标签:11 容器 max 面积 height 最多水 指针

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

提示:

  • n == height.length
  • 2 <= n <= 105
  • 0 <= height[i] <= 104

方法:双指针

思路:用双指针i,j循环height数,i,j对应高度较小的那个先向内移动,不断计算面积,更新最大面积

时间复杂度:O(n)

空间复杂度:O(1)

 1 /**
 2  * @param {number[]} height
 3  * @return {number}
 4  */
 5 var maxArea = function (height) {
 6     let max = 0;
 7     for (let i = 0, j = height.length - 1; i < j;) {//双指针i,j循环height数组
 8         //i,j较小的那个先向内移动,如果高的指针先移动,那肯定不如当前的面积大
 9         const minHeight = height[i] < height[j] ? height[i++] : height[j--];
10         const area = (j - i + 1) * minHeight;//计算面积
11         max = Math.max(max, area);//更新最大面积
12     }
13     return max;
14 };

 

标签:11,容器,max,面积,height,最多水,指针
From: https://www.cnblogs.com/icyyyy/p/16885883.html

相关文章

  • 2022/11/12 模拟测题解
    2022/11/12模拟测题解A考场上推了一下,发现这个玩意挺有意思。一共有\((n+1)(m+1)\)个字符串,减去相同的个数,即可。这个相同的个数还是很好统计的,且这里指的相同仅仅是......
  • 11.13.2
    #include<stdio.h>intsc(intx,intarr[]);intmain(){ intn,i;intarr[100];scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&arr[i]);}sc(n,arr); return0;......
  • CodeForces - 1187E Tree Painting
    题意:给出一棵树,最开始所有节点都是白的。进行一些操作来计算树的价值。每次操作可以选一个节点,给价值加上包括这个结点在内的白色连通块大小。然后把这个结点染成黑色。除......
  • 周日1040C++班级2022-11-13 数据类型-字符型char
    数据类型-char字符型特点:由单引号’’构成,且长度为1,在格式化中字符用%c来表示正确的字符:‘a’ ‘ ’ ‘#’ ‘1’错误的字符:’aa’ ‘##’ ‘’’’ascii码表......
  • 黑苹果 Big Sur 11.6 启动 HiDPI 功能
    黑苹果BigSur11.6启动HiDPI功能NUC10安装了BigSur11.6后,设置HiDPI功能 安装完黑苹果后,由于是1080P分辨率的屏幕,字体显示的非常小,看着很吃力。......
  • 2022.11.12 C.The Seven-Sparkling-Star Card Game(大模拟)
    ProblemTheSeven-Sparkling-StarCardGame(七星卡牌)游戏是Illumina_矿业无限游戏公司的最新力作。基本游戏规则:对战双方各持\(n\)张卡牌,其中\(n\)是\(7\)的......
  • 第6章Spring与Web-使用 Spring 的监听器 ContextLoaderListener使得将spring容器对象
    第6章Spring与Web在Web项目中使用Spring框架,首先要解决在web层(这里指Servlet)中获取到Spring容器的问题。只要在web层获取到了Spring容器,便可从容器中获取到......
  • 11.13.1
    #include<stdio.h>intgdbh(intx);intmain(){inta;scanf("%d",&a);gdbh(a); return0;}intgdbh(intx){ inti,j,n,m,h,l,o,u; for(i=2;i<x;i++){for(j=2;......
  • 云原生之旅 - 11)基于 Kubernetes 动态伸缩 Jenkins Build Agents
    前言上一篇文章 云原生之旅-10)手把手教你安装JenkinsonKubernetes 我们介绍了在Kubernetes上安装Jenkins,本文介绍下如何设置k8spod作为Jenkins构建job的agen......
  • Linux学习笔记(11)——进程管理与SELinux初探
    进程管理与SELinux初探进程管理与SELinux初探一、什么是进程1.1进程与程序(process&program)二、任务管理(jobcontrol)2.1什么是任务管理2.2jobcontrol的......