【leetcode--golang】11. 盛最多的水

Caffeine:为每个元素动态设置过期时间 Caffeine利用expireAfter方法实现为每个元素动态设置过期时间 阅读详情

题目

给定n个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画n条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。9daebb6ebbdb925763fbd31e9a7aa329.jpeg
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值49.

示例

输入: [1,8,6,2,5,4,8,3,7]
输出: 49

解决方案

方法一:暴力法算法
在这种情况下,我们将简单地考虑每对可能出现的线段组合并找出这些情况之下的最大面积。不推荐。

复杂度分析

时间复杂度:O(n^2)O(n2),计算所有n(n-1)/2 种高度组合的面积。
空间复杂度:O(1)O(1),使用恒定的额外空间。

方法二:双指针法算法
这种方法背后的思路在于,两线段之间形成的区域总是会受到其中较短那条长度的限制。此外,两线段距离越远,得到的面积就越大。我们在由线段长度构成的数组中使用两个指针,一个放在开始,一个置于末尾。 此外,我们会使用变量 maxarea 来持续存储到目前为止所获得的最大面积。 在每一步中,我们会找出指针所指向的两条线段形成的区域,更新 maxarea,并将指向较短线段的指针向较长线段那端移动一步。

func maxArea(height []int) int {
	n := len(height)

	i := 0
	j := n - 1

	var res, tmp int
	for i < j {
		tmp = 0
		if height[i] < height[j] {
			tmp = height[i] * (j - i)
			res = max(res, tmp)
			i++
		} else {
			tmp = height[j] * (j - i)
			res = max(res, tmp)
			j--
		}
	}
	return res
}

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

复杂度分析

时间复杂度:O(n),一次扫描。空间复杂度:O(1),使用恒定的空间。

【DRAM存储器五十七】LPDDR5介绍--read DQ training和WCK DQ training 简述LPDDR5训练中的读写DQ训练 阅读详情

相关推荐

从MRF8P9040N数据手册到ADS仿真:手把手教你搞定LDMOS功放设计(附完整模型下载)

本文详细解析了MRF8P9040N LDMOS功率放大器的数据手册关键参数,并提供了在ADS中进行仿真的完整指南。从模型导入、直流工作点验证到负载牵引与阻抗匹配设计,逐步指导工程师完成高效功放设计。文章还包含调试技巧和常见问题解决方案,帮助优化射频功放性能。

weixin_27015733的博客 490

力扣11--盛最多水的容器问题Go语言实现

摘要 本文解决了寻找容器最大盛水量的问题。给定表示垂线高度的数组,采用双指针法从两端向中间遍历:初始化左右指针,计算当前面积(宽度×较小高度),更新最大面积后移动高度较小的指针。该方法时间复杂度O(n),空间复杂度O(1)。示例中数组[1,8,6,2,5,4,8,3,7]的最大盛水量为49。核心策略是始终移动较矮的边,以可能获得更高的补偿。

2502_93365655的博客 793

Slurm集群调度策略详解(1)-主调度

Slurm调度系统中针对作业的调度主要有三种,主调度,回填调度,GANG调度,这篇文章主要针对主调度进行解析。

h_m_l的博客 6030

Golang学习之路 - LeetCode-Go-Learning 第11题. 盛最多水的容器

Golang 基础个人探索过程学习别人的方法[11. Container With Most Water](https://leetcode.com/problems/container-with-most-water/)题目解题思路解题代码方案1方案1的单元测试方案2 鸣谢: LeetCode-In-Go 个人探索过程 // 这个版本没有考虑到数字的重复问题 func maxArea(heig...

莫寒技术人生 213

Labview数据存储与读取——TDMS文件的创建与写入

Labview数据存储与读取——TDMS文件的创建与写入 你好,这是我在自学Labview编写软件过程中使用的一些功能。我在存储采集卡数据时,通过阅读大量他人的程序,发现TDM及TDMS文件十分适合波形数据的记录,TDMS文件比TDM文件在存储动态类型数据时读写速度更快,而且TDMS 文件没有容量限制,适合存储数据量庞大的测试数据。 前言少叙,书归正传 这一篇博客,说明一下如何使用基本的TDMS功能实现数据文件的存储。 所需要的控件如上图所示,在程序框图——编程——文件I\O——TDMS 中,写入TDMS

滑板小帅程序开发 2万+

osgEarth实战:5分钟搞定3DTiles模型加载(附完整配置代码)

本文提供了一份osgEarth加载3DTiles模型的实战指南。通过详解核心Earth文件配置与精简的C++集成代码,帮助开发者快速在三维地球场景中集成倾斜摄影与BIM等海量模型,并分享了性能调优与常见问题排查技巧,有效提升开发效率。

jjj34的博客 479

【LeetCode Hot 100】Go语言题解:11. 盛最多水的容器(双指针法的优雅演练)

双指针法高效解决盛水容器问题。通过初始化首尾指针,计算当前面积并移动较短边指针,逐步缩小搜索空间。这种贪心策略能在O(n)时间内找到最大面积,避免暴力枚举的O(n²)复杂度。关键点在于每次移动短边指针以寻找可能的更大高度,从而弥补宽度减小带来的面积损失。示例代码展示了Go语言的实现,直观体现了双指针法的简洁高效。

m0_57949696的博客 600

使用 Python 和可视化编程控制树莓派机械臂myCobot

这些模块包括逻辑、循环、数学、文本、列表、颜色、变量、函数以及控制机械臂的函数等等,所以用户可以轻松入门编程,只需单击右上角的运行就可以启动程序,做一些有趣的应用。可以搭配任意摄像头进行图像识别,具有4个 USB 端口,可以通过 Raspberry Pi 的微型 HDMI 端口连接到显示器. 最后,40 个GPIO 接头可以进行更多扩展应用,机械臂每个接口都有清晰的标记,面板上还有一个电源开关和一个直流电源插孔。您现在可以将机器人放在地板或桌子上,并用力拧紧吸盘,以确保机械臂的底座在操作过程中不会移动。

m0_62456998的博客 3966

LeetCode(golang):11、 盛最多水的容器

题目: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且n的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。 示例...

光九的博客 303

QGroundControl或者华科尔地面站安装完打不开问题解决

QGroundControl 华科尔 打不开

wv112406的博客 4910

告别繁琐!VS Code 下OpenClaw零配置上手秘籍

本文介绍了在VSCode环境下零配置上手OpenClaw开发工具的最佳实践。首先详细说明了VSCode和OpenClaw插件的安装步骤,包括获取安装包、配置环境变量等准备工作。然后重点讲解了核心配置流程:设置OpenClaw路径、调整工作区参数、添加自定义代码片段等优化开发体验的方法。通过创建测试项目验证配置有效性,并针对常见的路径错误、运行报错等问题提供了排查方案。本文旨在帮助开发者快速搭建高效的OpenClaw开发环境,充分发挥VSCode与OpenClaw的组合优势,提升开发效率。无论是新手还是资深开

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 528

leetcode 11.盛最多水的容器 golang实现

描述 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且n的值至少为 2。 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。 ...

tzh_linux的专栏 277

GEE土地分类:基于sentinel-2的ResNet深度学习模型的土地分类

本文提出了一种基于深度学习的土地覆盖分类方法,通过集成Google Earth Engine和PyTorch框架实现自动化监测系统。技术方案包括:1) 使用Sentinel-2和Landsat-8卫星影像作为数据源,结合EuroSAT标准数据集;2) 采用ResNet50和U-Net构建深度学习模型;3) 建立端到端处理流程,包含数据预处理、模型训练和评估体系。实验结果表明,该方法在EuroSAT数据集上达到90%的分类准确率,成功应用于农作物监测、城市扩张分析等场景。系统配置基于Python 3.8+环境

此星光明博客 372

GO 力扣 11.盛最多水的容器

盛最多水的容器 这道题要求的就是两个柱子围城的最大的矩形 这个题只需要我们枚举一下两个指针,每一次将矮的那一侧的指针向中移动,然后计算一下最大值,直到指针相交。 代码如下: func maxArea(height []int) int { i:=0 j:=len(height)-1 ans:=0 for i<j { ans=max(ans,(j-i)*min(height[j],height[i]) ) Min(&i,&j

Onebelieve_lxl的博客 346

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Golang】LeetCode 11. 盛最多水的容器

基于 Golang 和 Python 解决 LeetCode 11. 盛最多水的容器。思路是双指针。

YGGP的博客 122

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Leetcode 11:盛最多水的容器[CPP][GO]

问题描述 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 **说明:**你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够...

KongJHong的博客 251

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【LeetCode】11. 盛最多水的容器 - Go 语言题解

本文给出了 LeetCode 11. 盛最多水的容器 的 Go 语言题解

weixin_44211968的博客 499

LeetCode 11. 盛最多水的容器(Golang)

给定 n 个非负整数a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝...

象牙塔下的渣渣 482

Leetcode 11. 盛最多水的容器 GOLANG实现

题目如下: 实现思路: 暴力办法,简单粗暴,不过时间复杂度高,O(n^2),因为是直接两个loop 左右夹逼,小的一边往内收敛 Tips: 由于Golang好像没有Math.min max之类的官方工具包,所以只能自己实现 Code: 思路1(这里我这边提示超出时间限制,可能是时间复杂度太高了吧) func maxArea(height []int) int { var max int for i:=0;i<len(height)-1;i++{ fo

msfcode的博客 237

11、盛最多水的容器(leetcode)-golang

// 双指针解法 // max表示最大容量,l、r分别指向切片的头部和尾部 // 容纳水的的最大容量min(height[l],height[r])*(r-l) func maxArea(height []int) int { l,r,max :=0,len(height)-1,0 for l < r { max = maxSwap(max,min(height[l],height[r])*(r-l)) // 比较左右两边值的大小,值比较小的移动指针,.

m0_47167062的博客 159

Golang | Leetcode Golang题解之第11题盛最多水的容器

Golang | Leetcode Golang题解之第11题盛最多水的容器

weixin_66442839的博客 705

leetcode | go | 第11题 | 盛最多水的容器

【代码】leetcode | go | 第11题 | 盛最多水的容器。

iCling的博客 136

每日一题---11. 盛最多水的容器[力扣][Go]

题目描述 给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。 解题代码 // 双指针法 func maxArea(height []int) int { // 左右下标 indexLeft := 0 indexRight := len(height) - 1 max := 0

weixin_52025712的博客 307

tick-stock-panel 选股回测工作台 10 分钟跑通:.env 最小集、数据档位与 AI 开关一次配齐

tick-stock-panel 是自托管的 A 股量化工作台,把选股、监控、回测装进一台机器。本文只围绕 `.env` 一个文件展开:先看 3 分钟怎么启动,再讲各项不填时是什么表现、填了又能多出什么能力。 [![tick-stock-panel 量化工作台看板与选股回测界面](https://raw.gitcode.com/GitHub_Trending/ti/tick-stock-pane

gitblog_00637的博客 233

go leetcode 10~12 正则表达式匹配 盛最多水的容器 整数转罗马数字

10.正则表达式匹配Regular Expression Matching   11. 盛最多水的容器 Container with most water   12. 整数转罗马数字 Integer to Roman

hannyang的博客 186

算法leetcode|11. 盛最多水的容器(rust重拳出击)

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明: 你不能倾斜容器。

二当家的白帽子 1332
上一篇: 【leetcode--golang】9. 回文数
下一篇: 【leetcode--golang】14. 最长公共前缀
cbmljs
博客等级 码龄10年 329粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值