leetcode(11)

【中等】力扣算法题解析LeetCode11:盛最多水的容器 采用双指针法高效求解容器盛水问题。初始化左右指针分别指向数组两端,计算当前容量并更新最大值。关键策略是移动高度较小的指针,以寻找潜在更大容量的组合。算法时间复杂度为O(n),空间复杂度O(1)。Java实现通过循环比较和指针移动,最终返回最大储水量。 阅读详情

终于又开始刷leetcode了 这次的开局有点困难 把问题想复杂了 然后看了一下参考 得出了两种方法

题目如下:就是将所给数组对应在直角坐标系第一象限 计算两边之间的最大面积

比如 此数组就为  [10,11,9,5,12,4]

        对应的索引为  0 1  2 3   4 5

Smax=10*(4-0)=40

下面正式开始分析:

解法一:将所有的排列组合进行比较 取出最大的一个(强调两点 1.注意应用“组合” 因为计算面积与前后的顺序无关,所以查找时应该从下一项查起  2.注意题目只让求最值 所以没比较进行排序 只进行分别比较 取最大即可 )

// // 思想 借鉴了题解的一位老哥 其实就是暴力算法 我之前想的是 用数组记录 但其实想的太多太复杂了
// // 直接用一个变量就可以判断大小了
// let maxArea = function(height) {
//     let Area = 0;
//     for (let i = 0; i < height.length - 1; i++) {
//         for (let j = i + 1; j < height.length; j++) {
//             let temp = (j - i) * Math.min(height[i],height[j]);
//             if (temp > Area) {
//                 Area = temp;
//             }
//         }
//     }
//     return Area;
// };

解法二   双指针逼近法

// 虽然说是双指针(其实就是首位两个位置罢了) 但是我的理解是 用最长的宽 去找最大的高 
// 至于高则是木桶原理 留下最高的 去掉最短的
let maxArea = function(height) {
    let left = 0, right = height.length - 1, Area = 0;
    while (left < right) {
        let s = (right - left) * Math.min(height[left], height[right]);
        if (s > Area) {
            Area = s;
        }
        if (height[left] <= height[right]) {
            left++;
        } else {
            right--;
        }
    }
    return Area;
};

 

python【力扣LeetCode算法题库】11-盛最多水的容器 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 思路 依... 阅读详情

相关推荐

DSP28335学习笔记——McBSP配置为SPI

由于28335硬件外设上只有一个SPI接口,所以当SPI接口不够用时,可以将McBSP配置为SPI接口。 参考28335的数据手册,当DSP为主机时,配置McBSP为SPI所用到的接线如下图所示。 另外总结一些调试过程中的经验。 1.传输数据位数的确定 由RCR1寄存器中的RWDLEN1和XCR1寄存器中的XWDLEN1决定。分别对应着接受和发送的位数,在配置成SPI模式的时候,这

捕虫少年 1万+

LeetCode-第十一题

LeetCode11.盛最多水的容器 开篇心得 依旧是数组,向下看题???? 题目复述 思考历程 个人认为,这道题首先要弄清题意,搞清楚这个水到底是怎么盛的。 明确一点,盛水的容量与两个因素有关:高度(取两端最小值)和宽度(作差)。要想使其两者乘积最大,即在宽度随着减小时,保证高度在增加。于是,思路就出来了: 用两个头尾索引,从两端开始遍历整个数组,不断像中间靠拢。当索引值的宽度比前面的宽度宽时,求解两者积并更新最大值。 解题代码(C语言) int min(int a,int b) { if(a&

joanna 582

为什么PCB设计中的50Ω阻抗如此重要?从USB到以太网的实战解析

本文深入解析了PCB设计中50Ω特征阻抗的核心重要性及其工程权衡起源。文章从传输线理论出发,阐释了阻抗匹配对防止信号反射、确保信号完整性的关键作用,并对比了USB、以太网等不同应用场景的阻抗标准。同时,文章结合实际案例,剖析了在两层板等简单设计中实现精准阻抗控制的难点与实战解决方案。

weixin_29268385的博客 297

图解LeetCode11:盛最多水的容器(多种解法)

LeetCode11:盛最多水的容器 给你n个非负整数a1,a2,… … ,an,每个数代表坐标中的一个点(i, a)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i, ai)和(i, 0)。找出其中的两条先,使得它们与x轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器 示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 输入:[1,1] 输出:1 提示: n == height.length 2 <= n <= 10^5 0 <= height[i] &l

weixin_46429290的博客 2040

若依ruoyi框架实现单点登录或者接入统一认证

log.info("单点登录用户[{}]不存在, 需要创建.", loginName);log.info("单点登录用户[{}]已存在.", loginName);jsonObjectData.put("nickName","单点1");if (code.equals("0")) {//验证成功需要自动登录。jsonObject.put("msg","验证成功");ajax.put("msg", "登录成功");

GitHub质检员 2万+

Qt实战:用QCustomPlot实现毫秒级时间轴数据动态刷新(附完整代码)

本文深入探讨了在Qt框架下,如何利用QCustomPlot库高效实现毫秒级时间轴数据的动态刷新与实时可视化。针对工业物联网等高频数据场景,文章提供了从原理剖析、核心代码实现到性能优化的完整实战指南,包括滑动窗口管理、双定时器策略及坐标轴精确配置,帮助开发者构建稳定、流畅的专业级监控界面。

qsc90123456的博客 758

LeetCode高频题11:盛最多水的容器

1)LR从两头往中间凑,一定在考虑a最大的情况下,两根板子尽可能高的最优解先更新给max了 2)当L小,让L探索有没有更高的瓶颈,R也类似,总之保证底边a最大的可能性下,去探索更高的瓶颈,这样算出来的水量是最好的 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...

weixin_46838716的博客 1230

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘解决方案

本文主要介绍了AttributeError: module ‘lib’ has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK’解决方案,希望能对使用python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

求职Leetcode题目(11)

解题思路:这种方法思维就就比较简单,而且最后的效率也很不错!方法二:对于数组中存在的连续序列,为了统计每个连续序列的长度,我们希望直接,从起点开始遍历每个连续序列,从而获得长度。那么如何获取到每个连续序列的起点呢,或者说什么样的数才是一个连续序列的起点?答案是这个数的前一个数不存在于数组中,因为我们需要能够快速判断当前数num的前一个数num - 1是否存在于数组中。同时当我们定位到起点后,我们就要遍历这个连续序列,什么时候是终点呢?

2302_79993788的博客 836

matlab 点云可视化(1)——pcshow()函数可视化单个点云

matlab可视化单个点云常用方法汇总。

点云侠的博客 5359

【QNX+Android虚拟化方案】00 - 系列文章链接汇总

【QNX+Android虚拟化方案】00 - 系列文章链接汇总

|~~~热爱生活、努力学习的小伙汁~~~| 1万+

LeetCode - 11 盛最多水的容器

也就是说 h[R1] * (R1 - L1 + 1) 的结果是肯定大于 h[L] * (R - L + 1) 的,因此这里 L 虽然没有匹配到最优高柱 R1,但是 R1 作为矮柱时的容器肯定比当前 R1 作为高柱时的容器盛水更多。容器内水的容量大小 V,取决于容器两端中的较短柱子h_min,因此为了使得容器内水尽可能的多,我们应该找到距离 h_min 柱子最远的,且高度>= h_min 的另一个柱子。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。输入:height = [1,1]

优快云 1753

基于特征模仿的YOLOv5中间层知识蒸馏:原理、实现与实验全解析

目标检测中的模型轻量化是一个关键挑战。本文提出一种基于特征模仿(Feature Imitation)的YOLOv5中间层知识蒸馏方法,通过让学生模型学习教师模型的中间层特征表示,显著提升轻量级检测器的性能。我们将详细阐述蒸馏损失函数的设计、特征对齐策略、训练流程,并提供完整可运行的代码实现。同时,推荐多个适合蒸馏训练的数据集,并通过实验验证方法的有效性。

YOLO 187

力扣LeetCode第11题盛最多水的容器

力扣LeetCode第11题盛最多水的容器

weixin_44061444的博客 788

VC中sqlite的使用

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LeetCode力扣数据库题目复习解答_day11_题号1393,1407,1484,1517,1527

【代码】LeetCode力扣数据库题目复习解答_day11_题号1393,1407,1484,1517,1527。

weixin_44223635的博客 387

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

力扣【LeetCode】—— 11. 盛最多水的容器【java】

题目地址:https://leetcode-cn.com/problems/container-with-most-water/ 题目:  给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:  不能倾斜容器。 示例: 解法一(暴力求解):  思路:遍历计算最大值,两层循环,选中一条垂直线,然后根据这

眉头的骰 889

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【LeetCode力扣】11. 盛最多水的容器 (中等)

这道题最优的方法就是用双指针,我们可以用指针left和指针right分别指向数组height[ ]的第一个数和最后一个数

m0_65277261的博客 901

力扣(LeetCode 11)盛最多的水 python

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

qq_41318002的博客 357

JavaScript实现 盛最多水的容器--力扣(leetcode 11)

目录 1 问题 2 输入输出 3 解法 1)暴力法 2)双指针方法 4 代码 1 问题 https://leetcode-cn.com/problems/container-with-most-water/ 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水 说明:你不能倾斜容器,且n的值...

bailizx 696

力扣 11.盛水最多的容器(双指针)

力扣,菜菜奋斗日记,C++

2402_88149600的博客 328

【PythonCode】力扣Leetcode11~15题Python版

Leetcode11-15

weixin_43790276的博客 1673

安卓 edittext监听输入数字个数并限制_LeetCode 题解 | 力扣杯 LCP 11.期望个数统计...

点击上方蓝字设为星标下面开始今天的学习~力扣杯 LCP 11.期望个数统计(点击文末阅读原文查看题目)题目描述某互联网公司一年一度的春招开始了,一共有n名面试者入选。每名面试者都会提交一份简历,公司会根据提供的简历资料产生一个预估的能力值,数值越大代表越有可能通过面试。小 A 和小 B 负责审核面试者,他们均有所有面试者的简历,并且将各自根据面试者能力值从大到小的顺序浏览。由于简历...

weixin_39639381的博客 91

LeetCode11

LeetCode11 连接 https://leetcode-cn.com/problems/container-with-most-water/ 一、暴力解法 class Solution { public int maxArea(int[] height) { // int i=0; // int j = height.length-1; int min; int max=-1; for(int i=0;i<h

一个白馒头的博客 177

【力扣LeetCode】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]。在此情况下,容器能够...

Jiewang的博客 307

leetcode-11 力扣 Java版本

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

mysql表名与列名单引号‘’引发的错误 185

leetcode11

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

qwerrfxgj的博客 607
上一篇: http(1)http的诞生及简述 tcp/ip基础
下一篇: js常用取整 取余方法
ICY___
博客等级 码龄8年 307粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值