LeetCode:11. 盛最多水的容器

news2024/12/25 2:03:56

11. 盛最多水的容器

  • 1)题目
  • 2)思路
  • 3)代码
  • 4)结果

1)题目

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/container-with-most-water
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2)思路

最开始是使用两个for循环,结果超出时间限制,
改变思路,
只要把两侧高度最小的指针往里移一格,记录最大容量。

3)代码

public static int maxArea(int[] height) {
    int length = height.length;
    int volume = 0;
    int i = 0;
    int j = length-1;

    while (i < j){
        // 宽度
        int width = j - i;
        // 高度
        int high = Math.min(height[j],height[i]);
        // 容量
        volume = Math.max(width * high,volume);

        if (height[i] > height[j]) {
            j--;
        } else {
            i++;
        }
    }

    return volume;
}

优化代码

public static int maxArea(int[] height) {
    int length = height.length;
    int volume = 0;
    int i = 0;
    int j = length-1;

    while (i < j){
        // 容量
        volume = height[i] > height[j] ?
                Math.max((j - i) * height[j--],volume) :
                Math.max((j - i) * height[i++],volume);
    }

    return volume;
}

4)结果

在这里插入图片描述
优化后结果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年1月4日:fastadminApi接口开发项目时遇到的问题

SelectPage selectpage(官方文档&#xff1a;动态下拉(SelectPage) - FastAdmin框架文档 - FastAdmin开发文档) 常规用法 下面介绍一个基础的动态下拉列表示例&#xff0c;如下 <input id"c-name" data-rule"required" data-source"category/sel…

AVS3变换之IST和ISTS

IST&#xff08;Implicit Selected Transform&#xff09;是AVS3中新增的针对intra块的变换工具&#xff0c;IST对intra块提供了两种可分离的变换核&#xff0c;编码器根据RDO选择最优的变换核&#xff0c;但是对于选中的变换核不在码流中传输其索引&#xff0c;而是将其索引隐…

day34【代码随想录】贪心算法之跳跃游戏、跳跃游戏||、K次取反后最大化的数组和

文章目录前言一、跳跃游戏&#xff08;力扣55&#xff09;二、跳跃游戏 II&#xff08;力扣45&#xff09;三、K次取反后最大化的数组和&#xff08;力扣1005&#xff09;前言 1、跳跃游戏 2、跳跃游戏|| 3、K次取反后最大化的数组和 一、跳跃游戏&#xff08;力扣55&#xff…

火热的低代码到底是什么?

低代码风头正紧&#xff0c;也是最近一段时间跟云原生一起被热捧&#xff0c;不管你是做后端开发、还是前端设计、销售、售前&#xff0c;如果你没接触过低代码你都不好意思说自己在软件领域工作&#xff0c;这边文章从我的角度聊聊低代码是什么、以怎么样的方式开发、及低代码…

react笔记_05函数组件与类组件的区别之capture value特性

函数组件与类组件在写法没有好坏之分&#xff0c;性能差距也几乎可以忽略&#xff0c;而且 React 会长期支持这两种写法。 React的函数式组件和类组件之间的根本区别 在心智模型上。 函数式组件具有 capture value 特性。 capture value特性 Capture Value 从字面上可以理解…

【已解决】office提示你的许可证不是正版,你可能是盗版软件的受害者?

三步即可先看效果步骤1、下载工具2、找到 修复Office许可证明问题3、填入KMS主机&#xff0c;点击修复如何查看正在使用的 KMS 主机地址&#xff1f;先看效果 步骤 1、下载工具 工具下载&#xff1a;https://otp.landian.vip/zh-cn/ 2、找到 修复Office许可证明问题 3、填入…

PEM格式RSA密钥解析(一)

Base64转16进制格式 后缀是.PEM 的数字证书是 BASE64 编码的&#xff0c;以 ASCII 码来表示。常见的证书如下所示&#xff08;以 RSA1024 为例&#xff09;&#xff1a; 私钥&#xff1a; ----BEGIN RSA PRIVATE KEY----- MIICWwIBAAKBgHU4CF6yvqb5WBhwcYfvh/o3NpwcSJlcfj0nIZ…

下载神器IDM安装与使用(保姆级教程)

下载神器IDM安装与使用&#xff08;保姆级教程&#xff09; 文章目录下载神器IDM安装与使用&#xff08;保姆级教程&#xff09;前言一、下载地址二、IDM是什么&#xff1f;三、作用与特点四、安装步骤总结前言 众所周知&#xff0c;下载工具是大家电脑里必装的软件之一。 但大…

大数据时代,制造业人要知道,为什么有ERP还要上SRM系统

每个公司都是在一个供应链中&#xff0c;每个公司都有自己的上下游。如今&#xff0c;企业间的竞争已不再是单一企业的单打独斗&#xff0c;而是由价值链与价值链、供应链与供应链的较量。上游厂商&#xff08;供应商&#xff09;直接影响到公司的产品与服务的价格及竞争能力。…

零售企业全域数据打通最佳实践

在数字化转型的实战中&#xff0c;零售企业面临着巨大的挑战&#xff0c;过去三年线下流量锐减&#xff0c;甚至不少门店关停&#xff0c;不少零售企业布局线上&#xff0c;但是这个也给零售企业带来另外一个挑战&#xff1a;IT资源有限的情况下&#xff0c;线上&线下的流量…

密码学_RC4算法

在密码学中&#xff0c;RC4&#xff08;来自Rivest Cipher 4的缩写&#xff09;是一种流加密算法&#xff0c;密钥长度可变。它加解密使用相同的密钥&#xff0c;因此也属于对称加密算法。RC4是有线等效加密&#xff08;WEP&#xff09;中采用的加密算法&#xff0c;也曾经是TL…

电脑看不了视频?视频恢复,3个方案解决

一般电脑播放不了视频&#xff0c;原因大多是Flash插件损坏了&#xff0c;因为电脑上的视频和所有的Flash都需要Flash插件才可以正常使用。电脑看不了视频怎么办&#xff1f;你需要对Flash进行修复或者重新安装它。一起来看看下面三个方案&#xff0c;解决电脑视频看不了的问题…

传输系统WSON倒换时的路由震荡问题【脱敏版】

【摘要】在省干传输OXC系统中使用WSON倒换时&#xff0c;测试过程中发现WSON倒换时存在电路频繁up down的现象&#xff0c;研究发现倒换时光信道建立时间过程中光信号不是一个稳定的状态&#xff0c;设备的色散补偿模块会在这个不稳态下出现异常&#xff0c;导致色散补偿模块不…

2023,出海企业,数据跨境传输如何实现合规?

随着防疫政策的优化&#xff0c;2023年出海企业开始加速海外业务&#xff0c;此前&#xff0c;浙江、四川、广东、江苏等地政府都纷纷出手“包机出海抢订单“。而伴随着企业的全球业务拓展&#xff0c;数据跨境活动日益频繁&#xff0c;跨境数据的安全风险也日益凸显&#xff0…

通过反射机制调用方法

package com.javase.reflect;import com.javase.service.UserService;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ResourceBundle;/*** 通过反射机制调用方法&#xff08;必须掌握&#xff0c;五颗星*****&#…

小程序开发经验分享(2)前端开发

一、开发前的准备 开发环境:微信推出的官方开发工具。 申请 Appid :相关公司或个人申请到 Appid 后可以进行真机的调试和预览,否则只能在开发工具里进行调试。 备案域名和证书:微信小程序仅支持 https 协议,所以务必绑定含有证书的域名,才能在正式上线后进行使用。 二…

jumpserver源码包安装

cd /opt wget https://github.com/jumpserver/installer/releases/download/v2.20.1/jumpserver-installer-v2.20.1.tar.gz tar -xf jumpserver-installer-v2.20.1.tar.gz cd jumpserver-installer-v2.20.1 ​ vim config-example.txt 在config-example配置文件里配置mysql&…

nacos 2.2部署指南,并配置mysql数据库

首先进入到/opt cd /opt 1.下载安装包 wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz 2.解压 tar -zxvf nacos-server-2.2.0.tar.gz 3.修改配置 3.1修改为单机部署模式(默认为 vi /opt/nacos/bin/startup.sh 55行,示例: exp…

Cypress 安装及入门排坑指南

最近准备给公司项目做重构&#xff0c;原本是打算使用Jest来作为测试工具的&#xff0c;刚好无意之中接触到了Cypress这款测试工具&#xff0c;虽然用上它非常的不容易&#xff08;简直是一波三折&#xff09;&#xff0c;但是用上了之后觉得真香啊。我们本篇文章就是讲Cypress…

C进阶_C语言_浮点数存储规则_浮点型在内存中的存储

在开始讲解之前&#xff0c;我们看一下常见浮点数的写法&#xff1a; 3.14159 1E10&#xff08;它代表1.0乘以10的10次方&#xff09; 浮点型家族里有float、double、long double类型。 浮点型的表示范围是多少&#xff1f;我们打开float.h就能看到&#xff08;这里用everythi…