Leetcode11 盛最多水的容器

news2024/9/28 4:45:51

Leetcode11 盛最多水的容器

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/container-with-most-water/description

博主Github:https://github.com/GDUT-Rp/LeetCode

题目:

给定一个长度为 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 <= 1 0 5 10^5 105
  • 0 <= height[i] <= 1 0 4 10^4 104

解题思路:

方法一:双指针

Golang

func maxArea(height []int) int {
    var (
        left int
        right int
        ans int
    )
    right = len(height) - 1
    for left != right {
        ans = max(ans, (right - left) * min(height[left], height[right]))
        if height[left] < height[right] {
            left += 1
            continue
        }
        right -= 1
    }

    return ans
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}

复杂度分析

时间复杂度 O(N)​ : 双指针遍历一次底边宽度 N​​ 。
空间复杂度 O(1) : 变量 i, j, res 使用常数额外空间。

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

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

相关文章

科技创新盛典:全国科技者工作日激荡创新思维

⭐ 全国科技工作者日的由来⭐ 全国科技工作者日LOGO⭐ 科技工作者界定⭐ 历年主题⭐ 2023年全国科技工作者日 今天我要和大家分享一个令人激动和振奋的消息——全国科技者工作日&#xff01;这是一个特殊的日子&#xff0c;为我们所有投身于科技创新的人们而设立&#xff0c;让…

Linux更改SSH端口,并解决SSHD服务重启失败的问题

环境&#xff1a;Linux Centos 7 1.进入sshd配置文件&#xff1a;vi /etc/ssh/sshd_config 2、找到“#Port 22”这行&#xff0c;删掉注释符#&#xff0c;将端口改为&#xff08;想要变成的端口号 如&#xff1a;2022&#xff09;&#xff1a; 3.重启sshd服务&#xff1a; sy…

【C++】程序的内存模型 - 内存四区代码区,全局区,栈区,堆区,new运算符

文章目录 1. 程序运行前1.1 代码区1.2 全局区 2. 程序运行后2.1 栈区2.2 堆区 3. new运算符 本阶段开始主要针对C面向对象编程技术&#xff0c;探讨C中的核心和精髓。 C程序在执行时&#xff0c;将内存大方向划分为4个区域&#xff1a; 代码区&#xff1a;存放函数体的二进制…

chatgpt赋能python:Python中拼接字符串的最佳方法

Python中拼接字符串的最佳方法 在Python编程中&#xff0c;拼接字符串是一个非常常见的任务。无论是将多个字符串连接成一个字符串&#xff0c;还是将变量值插入到字符串中&#xff0c;我们都需要拼接字符串。本文将介绍Python中拼接字符串的几种方法&#xff0c;并为你推荐最…

Vue登录界面精美模板分享

文章目录 &#x1f412;个人主页&#x1f3c5;Vue项目常用组件模板仓库&#x1f4d6;前言&#xff1a;&#x1f380;源码如下&#xff1a; &#x1f412;个人主页 &#x1f3c5;Vue项目常用组件模板仓库 &#x1f4d6;前言&#xff1a; 本篇博客主要提供vue组件之登陆组件源码…

车辆CAN信号,依据DBC文件解析流程

CAN信号解析流程 1.车辆CAN对应dbc文件 DBC文件是一种用于描述CAN&#xff08;Controller Area Network&#xff09;数据通信协议的文件格式&#xff0c;DBC文件中包含了CAN数据的信号定义、编码方式、单位、范围等信息&#xff0c;可以用于解析和生成CAN数据帧。 一个DBC文件…

数据结构与算法06:递归和简单的排序

目录 【递归】 【排序】 冒泡排序 插入排序 选择排序 【每日一练&#xff1a;K 个一组翻转链表】 【递归】 递归是将一些有规律的重复问题分解为同类的子问题的方法&#xff0c;也就是在函数中自己调用自己。比较经典的递归代码就是 斐波那契数列&#xff0c;实现方式如…

特征选择及特征提取

特征 什么是特征&#xff1a; 举个例子&#xff1a;一个妹子很好看&#xff0c;好看的在哪里&#xff1f;腿长&#xff08;特征1&#xff09;&#xff0c;白&#xff08;特征2&#xff09;&#xff0c;性格开朗&#xff08;特征3&#xff09; 那么可以概括为好看妹子的特征是…

修改element Plus的主题样式

安装element plus 安装icon pnpm install element-plus pnpm install element-plus/icons-vue main.ts配置 icon的使用https://element-plus.gitee.io/zh-CN/component/icon.html#%E7%BB%93%E5%90%88-el-icon-%E4%BD%BF%E7%94%A8 import { createApp } from vue import ./sty…

用chatGPT来NEW个对象让“码农”的节日不再仅仅只有1024(赶鸭子上架式的成长、无效不得不立的flag)

用chatGPT来NEW个对象让“码农”的节日不再仅仅只有1024 前言一、大部分的成长都是赶鸭子上架二、节日是为了告诉自己不孤单三、做不到也要立下的flag四、New个对象吧1.php定义一个科技工作者形象2.python定义一个科技工作者形象3.javascript定义一个科技工作者形象 总结 前言 …

Docker的简单使用

文章目录 Docker的简单使用Docker 是什么Docker的基本组成镜像&#xff08;image&#xff09;容器&#xff08;container&#xff09;仓库&#xff08;repository&#xff09; 安装Docker卸载docker配置docker镜像加速Docker的常用命令docker安装nginx&#xff08;docker简单使…

chatgpt赋能python:Python中升序排序详解

Python中升序排序详解 什么是升序排序&#xff1f; 升序排序指的是按照从小到大的顺序排列数组、列表等数据类型。在Python中&#xff0c;可以使用各种函数和方法来对数据进行升序排序&#xff0c;例如sort()函数、sorted()函数、和lambda表达式等。下面将详细介绍这些方法。…

Leaflet基本用法

使用 阿里云地理工具 获取相应的地理JSON数据&#xff0c;用于对地图边界绘制。 如何使用leaflet&#xff1f; 这里用HTML5进行操作&#xff1b; 因为我是用的是Leaflet库&#xff0c;所以要引入JavaScript 和 CSS 文件&#xff08;可参考官网https://leafletjs.com/&#x…

chatgpt赋能python:Python中常用的内置函数

Python中常用的内置函数 Python是一门非常强大的编程语言&#xff0c;它有很多内置函数可以帮助开发人员更快速、更便捷地编写程序。在本文中&#xff0c;将会介绍并着重标记加粗一些常用的Python内置函数。 print() print()是Python中最基本也是最常用的内置函数之一&#…

【异常捕获】

异常捕获 异常概念处理错误方式 异常处理举例栈展开异常规范异常继承层次优缺点 异常 概念 异常时程序可能检测到的&#xff0c;运行时不正常的情况&#xff0c;如存储空间耗尽&#xff0c;数组越界等&#xff0c;可以预见可能发生在什么地方但不知道在什么时候发生的错误。 …

chatgpt赋能python:Python中如何更新pip:一篇详细指南

Python中如何更新pip&#xff1a;一篇详细指南 作为一个有10年Python编程经验的工程师&#xff0c;我很清楚更新pip的重要性。pip是Python的依赖管理工具&#xff0c;它可以帮助您轻松安装、升级和删除Python包。随着Python不断发展和更新&#xff0c;保持最新版本的pip也很重…

SCI 投稿论文入门 —— 2. 图片编辑(Visio / Origin)

目录 引言IEEE trans论文图片格式要求单栏图片双栏图片 论文中插入曲线图曲线图具体要求 论文中插入结构图曲线图与结构图结合visio中设置界面单栏单张图片曲线图中需要插入结构图 箭头&#xff0c;线段粗细设置字体下标 引言 由于特殊要求&#xff0c;需要用word版本进行编辑…

Springboot整合Swagger2(3.0.0版本)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

SpringCloudAlibaba下篇(GateWay,Skywalking)(超级无敌认真好用,万字收藏篇!!!!)

文章目录 SpringCloudAlibaba下篇(GateWay,Skywalking)1 GateWay1.1 什么是网关1.2 GateWay介绍1.3 GataWay的基本使用1.4 GataWay整合Nacos1.5 断言路由工厂1.5.1 内置断言路由工厂1.5.2 自定义断言路由工厂 1.6 过滤器工厂1.6.1 内置局部过滤器工厂1.6.2 自定义局部过滤器1.6…

手撕code(2)

文章目录 1 设计模式1.1 单例模式1.1.1 懒汉单例1.1.2 饿汉单例1.1.3 总结 1.2 简单工厂模式 2 实现智能指针 1 设计模式 1.1 单例模式 某个类&#xff0c;不应该有多个实例&#xff0c;此时就可以使用单例模式。如果尝试创建多个实例&#xff0c;编译器就会报错。 1.1.1 懒…