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

盛最多水的容器

本节将数组与坐标轴共同组成一个容器,通过改变容器的两个端点使容器装的水最多,容器两个端点不断移动可以通过左右指针算法解决.

问题描述:

给定两个非负整数k1,k2...km每个数代表坐标中的一个点(i,ki).在坐标内绘制m条垂线,垂直线i的两个端点分别为(i,k1)和(i,0)找出其中的两条线,使他们与x轴共同构成的容器可以容纳最多的水.

思路解析:

一个容器的最终盛水量和两个因素有关一个是左右两个边界的高度;二是左右两边的距离.变量如下:

height变量:表示输入的高度数组

left表示:表示容器左边界的高度,最初指向数组的第一个元素

right变量:表示容器的右边界高度,最初指向数组的最后一个元素

res变量:表示最终返回的最大盛水量.res的初始值为0

完整代码如下:

def maxArea(self, height):  # 定义一个函数maxArea,接收两个参数:self(如果是类的方法)和height(柱子高度的列表)res = 0  # 初始化结果res为0,res用来记录遍历过程中找到的最大面积left = 0  # 初始化left指针指向数组的开始right = len(height) - 1  # 初始化right指针指向数组的末尾while(left < right):  # 当left指针小于right指针时,循环继续res = max(res, min(height[left], height[right]) * (right - left))  # 计算当前左右指针所形成的矩形面积,并更新resif(height[left] < height[right]):  # 如果左边柱子的高度小于右边柱子的高度left += 1  # 将left指针向右移动,寻找可能的更高柱子else:  # 否则right += 1  # 将right指针向左移动,寻找可能的更高柱子return res  # 返回计算得到的最大面积

http://www.lryc.cn/news/492666.html

相关文章:

  • 光伏功率预测!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型时序预测
  • java全栈day10--后端Web基础(基础知识)
  • 使用爬虫时,如何确保数据的准确性?
  • Burp入门(4)-扫描功能介绍
  • Tourtally:颠覆传统的AI智能旅行规划革命
  • chrome允许http网站打开摄像头和麦克风
  • 视觉经典神经网络与复现:深入解析与实践指南
  • ByConity ELT 测试体验
  • 对象键值对内容映射
  • 《生成式 AI》课程 第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)
  • 学习C#中的反射
  • 学习使用jquery实现在指定div前面增加内容
  • react项目初始化配置步骤
  • vue使用百度富文本编辑器
  • 异常处理(6)自定义异常
  • 微软正在测试 Windows 11 对第三方密钥的支持
  • 时间的礼物:如何珍视每一刻
  • 初级 Python 数据脱敏技术及应用
  • 1063 Set Similarity (25)
  • Web登录页面设计
  • 【大数据学习 | Spark】Spark on hive与 hive on Spark的区别
  • 软件测试丨Pytest 第三方插件与 Hook 函数
  • Python学习35天
  • IO基础(字符集与字符流)
  • LLM应用-prompt提示:RAG query重写、相似query生成 加强检索准确率
  • [python脚本处理文件入门]-17.Python如何操作Excel文件的读写
  • 深度理解进程的概念(Linux)
  • 【C++】STL容器中的比较函数对象
  • 深度学习基础02_损失函数BP算法(上)
  • 6.584-Lab4A