当前位置: 首页 > news >正文

力扣-盛最多水的容器

1.题目描述

2.题目链接 

11. 盛最多水的容器 - 力扣(LeetCode)

3.题目解析

题目中的储水量=两边差*短边高度。也就是说,两条边中,决定储水量的是短边的高度

我们可以定义两个指针,一个在最左边,一个在最右边。

那么双指针的移动逻辑是什么呢?

首先,无论是移动左指针,还是移动右指针,只要移动指针两边差就都会缩小,而且缩小的幅度一样(都是走一步)。

第二,储水量=两边差*短边高度,如果我们移动较高边的指针,会有两种情况:

1.得到的新边curNew大于原较低边的高度dest,那么“储水量=两边差*短边高度”的中的短边高度就没有影响:min(height【curNew】,height【dest】)还是等于height【dest】,所以储水量计算公式中的短边高度依然是原来的height【dest】。而两边差是已知缩小的,所以储水量会变小。

2.得到的新边curNew小于原较低边的高度dest,那么“储水量=两边差*短边高度”的中的短边高度就会变小:min(height【curNew】,height【dest】)=height【curNew】且height【curNew】<height【dest】,也就是说,这种情况下,短边高度虽然受到影响,变为height【curNew】,但是新的短边高度height【curNew】<原来的短边高度height【dest】。两边差和短边高度都在变小,所以“储水量=两边差*短边高度”自然也就变小了。

这里我们用到了数学中的单调性判断,可以得到我们要想得到更高储水量,就只能移动较低边的指针。 

我们可以不断地移动较低边的指针,并把每一个储水量V计算出来,再定义一个int型整数ret=0,不断地取ret和新储水量的最大值,当cur=dest时,双指针相遇,数组遍历完毕,我们也就得到储水量的最大值

4.解答代码

class Solution {public int maxArea(int[] height) {int cur=0,dest=height.length-1,ret=0;while(cur<dest){int v=Math.min(height[cur],height[dest])*(dest-cur);ret=Math.max(ret,v);if(height[cur]<height[dest]){cur++;}else{dest--;}}return ret;}
}

http://www.xdnf.cn/news/546877.html

相关文章:

  • 网络刷卡器的分类和网口通讯流程
  • hghac集群服务器时间同步(chrony同步)
  • 替换word中的excel
  • 【25软考网工】第七章 (2)UOS Linux文件和目录管理、用户和组管理
  • 音频应用的MediaSession冲突
  • Transfomer学习
  • Java NIO(New I/O)
  • ubuntu kubeasz 部署高可用k8s 集群
  • k8s1.27版本集群部署minio分布式
  • 01 基本介绍及Pod基础
  • 【DCGMI专题1】---DCGMI 在 Ubuntu 22.04 上的深度安装指南与原理分析(含架构图解)
  • 深度学习架构快速入门——卷积神经网络CNN、循环神经网络RNN、生成对抗网络GAN、Transformer以及编码器-解码器
  • Jenkins:自动化之魂,解锁高效开发的密钥
  • 2025-05-20 模型下载--文本向量化--Faiss检索
  • SQLMesh 内置宏详解:@PIVOT等常用宏的核心用法与示例
  • Qt文件:XML文件
  • 战略游戏--树形dp
  • Java中字符串(String类)的常用方法
  • 如何使用MATLAB NLP工具箱进行文本聚类
  • notepad++
  • 使用 vite-plugin-dynamic-base 实现运行时动态设置上下文路径
  • SetThrowSegvLongjmpSEHFilter错误和myFuncInitialize 崩溃
  • 深度学习框架显存泄漏诊断手册(基于PyTorch的Memory Snapshot对比分析方法)
  • LLM: 多模态LLM动态分辨率
  • AI知识库- Cherry Studio构建本地知识库
  • winrm ‘Protocol‘ object has no attribute ‘run_ps‘
  • AI编程辅助哪家强?深度解析主流AI编程工具的现状与未来-优雅草卓伊凡
  • 裸金属服务器:解锁极致性能,拒绝虚拟化开销!
  • es学习小结
  • OSError: [WinError 193] %1 不是有效的 Win32 应用程序。