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

LeetCode 11 Container with Most Water 解题思路和python代码

题目
You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]).

Find two lines that together with the x-axis form a container, such that the container contains the most water.

Return the maximum amount of water a container can store.

Notice that you may not slant the container.

Example 1:
在这里插入图片描述
Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.
Example 2:

Input: height = [1,1]
Output: 1

Constraints:

n == height.length
2 <= n <= 105
0 <= height[i] <= 104

解题思路
我们可以看到这里水的体积多少取决于两边的竖直线中较短的那一条。我们可以使用两个指针,一个指向数组的第一个数,另一个指向数组的第二个数。我们可以计算面积,同时移动两个指针中,指向较短竖直线的那一个。

class Solution:def maxArea(self, height: List[int]) -> int:left = 0right = len(height) - 1max_area = 0while left < right:# Calculate the current area width = right - leftcurrent_area = min(height[left], height[right]) * width# Update max_area if the current one is largermax_area = max(max_area, current_area)# Move the pointer that points to the shorter lineif height[left] < height[right]:left += 1else:right -= 1return max_area

Time Complexity 是 O(n)
Space Complexity 是 O(1)

相关文章:

LeetCode 11 Container with Most Water 解题思路和python代码

题目&#xff1a; You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]). Find two lines that together with the x-axis form a container, such that the co…...

【深度学习】损失函数

损失函数&#xff08;Loss Function&#xff09;是机器学习和深度学习模型中的一个核心概念&#xff0c;它用于衡量模型的预测输出与真实标签之间的差异。通过优化&#xff08;最小化&#xff09;损失函数&#xff0c;模型可以不断调整其内部参数&#xff0c;提升预测性能。不同…...

力扣 中等 46.全排列

文章目录 题目介绍题解 题目介绍 题解 代码如下&#xff1a; class Solution {List<List<Integer>> res new ArrayList<>();// 存放符合条件结果的集合List<Integer> path new ArrayList<>();// 用来存放符合条件结果boolean[] used; // 标记…...

LabVIEW机床加工监控系统

随着制造业的快速发展&#xff0c;机床加工的效率与稳定性成为企业核心竞争力的关键。传统的机床监控方式存在效率低、无法远程监控的问题。为了解决这些问题&#xff0c;开发了一种基于LabVIEW的机床加工监控系统&#xff0c;通过实时监控机床状态&#xff0c;改进生产流程&am…...

第五届智能设计国际会议(ICID 2024)

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网&#xff1a;https://ais.cn/u/vEbMBz提交检索&#xff1a;EI Compendex、IEEE Xplore、Scopus大会时间&#xff1a;2024年10月25-27日大会地点&#xff1…...

厨房用品分割系统源码&数据集分享

厨房用品分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DCNV3&#xff06;yolov8-seg-AFPN-P345等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al ln…...

【HTTPS】深入解析 https

我的主页&#xff1a;2的n次方_ 1. 背景介绍 在使用 http 协议的时候是不安全的&#xff0c;可能会出现运营商劫持等安全问题&#xff0c;运营商通过劫持 http 流量&#xff0c;篡改返回的网页内容&#xff0c;例如广告业务&#xff0c;可能会通过 Referer 字段 来统计是…...

Axios 快速入门

什么是Ajax Ajax 是一种通过 JavaScript 发送异步请求的技术&#xff0c;它的核心是使用 XMLHttpRequest 对象来与服务器交换数据。这种方式较为繁琐&#xff0c;因为需要手动处理请求状态和响应&#xff0c;并且编写的代码往往比较冗长。 相较之下&#xff0c;Axios 是一个基于…...

LabVIEW提高开发效率技巧----调度器设计模式

在LabVIEW开发中&#xff0c;针对多任务并行的需求&#xff0c;使用调度器设计模式&#xff08;Scheduler Pattern&#xff09;可以有效地管理多个任务&#xff0c;确保它们根据优先级或时间间隔合理执行。这种模式在需要多任务并发执行时特别有用&#xff0c;尤其是在实时系统…...

python之认识变量

1、变量 1.1、定义 字面意思来看&#xff0c;会发生改变的量称为变量。 相反的&#xff0c;如果有一个不会发生改变的量&#xff0c;它应该称为不变量&#xff0c;即常量。 1.2、引入变量的原因 主要是为了方便程序员动态的管理、操控数据。 1.3、变量的三要素 名称 类型…...

c++应用网络编程之十Linux下的Poll模式

一、Poll模式 在上一篇文章中提到了Select模式的缺点。既然有缺点&#xff0c;就要改正。但是直接在Select模式上修改不太现实&#xff0c;那么就推出一个新的模式不更香么&#xff1f;poll模式就应运而生了。不过&#xff0c;罗马不是一天建成的&#xff0c;poll模式也只是对…...

[C++][第三方库][RabbitMq]详细讲解

目录 1.介绍2.安装1.RabbitMq2.客户端库 3.AMQP-CPP 简单使用1.介绍2.使用 4.类与接口1.Channel2.ev 5.使用1.publish.cc2.consume.cc3.makefile 1.介绍 RabbitMQ&#xff1a;消息队列组件&#xff0c;实现两个客户端主机之间消息传输的功能(发布&订阅)核心概念&#xff1…...

Next.js 详解

Next.js是一个基于React的开源JavaScript框架&#xff0c;由Vercel&#xff08;原Zeit&#xff09;公司开发。它旨在简化React应用的构建过程&#xff0c;并提供了一系列强大的功能来优化性能和开发体验。以下是对Next.js的详细解析&#xff1a; 一、核心特性 服务器端渲染&…...

pygame--超级马里奥(万字详细版)

超级马里奥点我下载https://github.com/marblexu/PythonSuperMario 1.游戏介绍 小时候的经典游戏&#xff0c;代码参考了github上的项目Mario-Level-1&#xff0c;使用pygame来实现&#xff0c;从中学习到了横版过关游戏实现中的一些处理方法。原项目实现了超级玛丽的第一个小…...

【运维】nginx静态代理资源403权限问题

如题&#xff0c;遇到静态代理资源访问403&#xff0c;可以尝试检查其文件权限&#xff0c;父目录权限&#xff0c;需要确保 "目录使用标准的 755&#xff0c;对文件使用 644&#xff08;umask&#xff1a;022&#xff09;" 参考资料&#xff1a; 1. nginx “403 …...

java家政预约上门系统源码,家政服务平台源码,基于SpringBoot框架,数据库使用MySQL,界面渲染采用Thymeleaf技术开发

自主知识产权的家政预约上门系统源码&#xff0c;java版本&#xff0c;支持二次开发&#xff0c;适合商用上项目。 在这个快节奏的现代生活中&#xff0c;越来越多的家庭开始寻求高效、便捷的家政服务解决方案。传统的家政服务模式已经很难满足人们日益增长的个性化与即时性需求…...

算法知识点————贪心

贪心&#xff1a;只考虑局部最优解&#xff0c;不考虑全部最优解。有时候得不到最优解。 DP&#xff1a;考虑全局最优解。DP的特点&#xff1a;无后效性&#xff08;正在求解的时候不关心前面的解是怎么求的&#xff09;&#xff1b; 二者都是在求最优解的&#xff0c;都有最优…...

python数据分析

Python是一种非常流行的编程语言&#xff0c;尤其在数据分析领域。Python拥有丰富的库和框架&#xff0c;可以帮助你执行各种数据分析任务。Python常用的数据分析工具之一&#xff1a;NumPy。 Numpy用于进行大规模数值和矩阵运算&#xff0c;提供了多维数组对象和一系列操作这…...

UGUI(现成组合控件)

Drop Down Scroll View Scroll Bar size是滚动条的填充程度 Slider 如果设置为静态&#xff0c;那么传入的值始终为自己设置的那个值 Input Field content type为standard时 可以设置line type&#xff0c; 只读不改&#xff0c;就是可以复制&#xff0c;但是你已经不能输入了…...

软件交付体系文件(Word源资料)

软件文档交付清单是指在软件开发项目完成后&#xff0c;开发团队需要准备的一份详细清单&#xff0c;用于确保交付的软件产品符合客户需求并达到预期的质量标准。以下是软件文档交付清单中可能包含的一些关键要素 软件全套资料部分文档清单&#xff1a; 工作安排任务书&#xf…...

Allegro铺铜避坑指南:从十字花焊盘到孤铜删除,新手必知的10个实用技巧

Allegro铺铜避坑指南&#xff1a;从十字花焊盘到孤铜删除&#xff0c;新手必知的10个实用技巧 第一次在Allegro中铺铜时&#xff0c;那种手足无措的感觉我至今记忆犹新。面对密密麻麻的参数选项和看似简单的操作背后隐藏的各种"坑"&#xff0c;即使是完成了布局布线的…...

告别PX4的玄学Bug:手把手教你用Mission Planner给ArduPilot飞控做全套硬件校准(附电调校准避坑指南)

告别PX4的玄学Bug&#xff1a;手把手教你用Mission Planner给ArduPilot飞控做全套硬件校准&#xff08;附电调校准避坑指南&#xff09; 作为一名长期与无人机打交道的开发者&#xff0c;我深知飞控系统稳定性对飞行安全的重要性。在尝试过PX4和ArduPilot两大主流固件后&#x…...

如何快速完成Windows系统部署:高效自动化工具完整指南

如何快速完成Windows系统部署&#xff1a;高效自动化工具完整指南 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat Wind…...

【Transformer系列】从One-Hot到Embedding:构建AI语言理解的基石

1. 从One-Hot编码说起&#xff1a;AI的第一堂语言课 想象你正在教一个外星人认识汉字。你拿出一本字典说&#xff1a;"这里有10万个字&#xff0c;每个字对应一个编号&#xff0c;猫是第12345号&#xff0c;狗是第67890号。"这就是最原始的One-Hot编码思想——用一串…...

四通道32孔生物源性检测仪 肉源性检测仪器

四通道32孔生物源性检测仪搭载四通道48孔高通量检测架构&#xff0c;本少、效率低的短板&#xff0c;大幅提升肉类质检筛查效率。多通道独立运行互不干扰&#xff0c;可一次性完成大批量肉类样本同步检测设备检测精度优异&#xff0c;可精准识别各类常见动物源性成分&#xff0…...

利用 Taotoken 模型广场为不同智能体任务选择合适的模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用 Taotoken 模型广场为不同智能体任务选择合适的模型 在设计多智能体系统时&#xff0c;一个常见的挑战是如何为系统中承担不同…...

Nooploop TOFSense激光测距模块:从快速上手指南到多平台实战应用

1. Nooploop TOFSense激光测距模块初体验 第一次拿到TOFSense激光测距模块时&#xff0c;我完全被它的小巧体积震惊了。这个比火柴盒大不了多少的装置&#xff0c;居然能实现0.1-12米的精确测距&#xff0c;精度高达1cm&#xff01;作为一名经常在无人机项目中折腾的嵌入式工程…...

Notemd Pro:基于Web技术栈的开源个人知识管理应用深度解析

1. 项目概述&#xff1a;一个面向未来的笔记应用如果你和我一样&#xff0c;常年混迹在程序员、产品经理和知识工作者的圈子里&#xff0c;那你一定对“笔记软件”这个赛道又爱又恨。爱的是&#xff0c;它确实是我们整理思路、记录灵感、构建知识体系的刚需&#xff1b;恨的是&…...

Taotoken助力初创团队以可控成本集成大模型能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken助力初创团队以可控成本集成大模型能力 为产品添加智能对话功能是许多初创团队提升用户体验的关键一步。然而&#xff0c;…...

Cadence Allegro自定义快捷键全攻略:从env文件到Skill脚本

1. 项目概述&#xff1a;为什么我们需要自定义快捷键&#xff1f;如果你是一名电子工程师&#xff0c;或者经常使用Cadence Allegro进行PCB设计&#xff0c;那么对软件自带的默认快捷键一定又爱又恨。爱的是&#xff0c;它确实提供了一些基础的操作加速&#xff1b;恨的是&…...