[python 刷题] 11 Container With Most Water

news2024/11/18 20:40:23

[python 刷题] 11 Container With Most Water

题目:

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.

这道题也是一个比较经典的双指针+贪心,求的事总面积,题目中已经提出容器无法被倾倒 🫗,在不考虑三角的情况下,面积的构成就是 长(x 轴) x 宽(y 轴) 的组合,

以案例 1 而言:[1,8,6,2,5,4,8,3,7],分析如下:

当左右指针指向最两边时,面积是这样的:

在这里插入图片描述

此时面积为 m i n ( 1 , 7 ) × 8 min(1, 7) \times 8 min(1,7)×8

可以看到,容器的面积是收到长和高的限制,而高的选取则为 m i n ( l e f t , r i g h t ) min(left, right) min(left,right),也就是说,高都不变,指针之间的距离越小,面积自然就越小。

这个情况下,最合理的做法就是移动较低一边的指针,这样长度虽然减少了,但是高度增加的话,面积还是有可能会增加:

在这里插入图片描述

此时的面积为 m i n ( 7 , 8 ) × 7 min(7, 8) \times 7 min(7,8)×7

接着重复这样的操作:

在这里插入图片描述

一直到完成遍历即可

代码如下:

class Solution:
    def maxArea(self, height: List[int]) -> int:
        res = 0
        l, r = 0, len(height) - 1

        while l < r:
            res = max(res, min(height[l], height[r]) * (r - l))
            if height[l] < height[r]:
                l += 1
            else:
                r -= 1

        return res

这道题的空间复杂度为 O ( 1 ) O(1) O(1),只需保留最终结果和 2 个指针,时间复杂度为 O ( n ) O(n) O(n)

多提一句,只是针对这道题,greedy 一定能够导出有最优解,所以没有必要使用 DP,DP 因为要寻找全局最优解,所以时间复杂度为 O ( n 2 ) O(n^2) O(n2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何快速学习AdsPower RPA(2)——中级、高级部分

Tool哥继续给大家分享快速学习AdsPower RPA的方法。上一篇在这里&#xff0c;还没看过的小伙伴赶快补课去&#xff1a;如何快速学习AdsPower RPA&#xff08;1&#xff09;——简单、进阶部分 能进入到中级、高级阶段的学习&#xff0c;说明你自学能力超强&#xff01;只要跟着…

联想详解AI导向基础设施 “软硬一体”赋能四大场景

9月25日&#xff0c;联想在杭州举办以“全栈智能 全程陪伴”为主题的新IT思享会&#xff0c;集中展示了联想基于新IT架构的全栈智能产品与服务&#xff0c;引领行业智能变革的强大实力。 当前&#xff0c;以ChatGPT为代表的AI模型席卷全球&#xff0c;不仅实现了AI技术质变性突…

在 Kubernetes 环境中实现证书管理的自动化

原文作者&#xff1a;Jason Schmidt - F5 NGINX 解决方案架构师 原文链接&#xff1a;在 Kubernetes 环境中实现证书管理的自动化 转载来源&#xff1a;NGINX 中文官网 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.cn 有效的 SSL/TLS 证书是现代应用环境的核心要求。但…

Unity制作旋转光束

Unity制作旋转光束 大家好&#xff0c;我是阿赵。 这是一个在很多游戏里面可能都看到过的效果&#xff0c;在传送门、魔法阵、角色等脚底下往上散发出一束拉丝形状的光&#xff0c;然后在不停的旋转。 这次来在Unity引擎里面做一下这种效果。 一、准备材料 需要准备的素材很简…

Django之视图

一&#xff09;文件与文件夹 当我们设定好一个Djiango项目时&#xff0c;里面会有着view.py等文件&#xff0c;也就是文件的方式&#xff1a; 那么我们在后续增加app等时&#xff0c;view.py等文件会显得较为臃肿&#xff0c;当然也根据个人习惯&#xff0c;这时我们可以使用…

Linux下ebtables和iptables

ebtables Ebtables has three tables: filter, nat and broute. The broute table has the BROUTING chain.The filter table has the FORWARD, INPUT and OUTPUT chains.The nat table has the PREROUTING, OUTPUT and POSTROUTING chains. iptables Tables↓/Chains→PREROU…

线上展示越发流行的今天,数字展厅发展有哪些趋势

引言&#xff1a; 二十一世纪的今天&#xff0c;数字化技术在不断的进步&#xff0c;数字展厅也逐渐出现在人们眼前&#xff0c;并成为了现代展示和推广的重要工具。 一&#xff0e;快速了解数字展厅 数字展厅是一种利用数字技术创建的虚拟展示空间&#xff0c;它通过虚拟现实…

Go-Ldap-Admin | Ldap 同步钉钉、企业微信、飞书组织架构实践和部分小坑

目录 一、Docker-compose快速拉起demo测试环境 二、原生部署流程 安装MySQL&#xff1a;5.7数据库 安装openLDAP 修改域名&#xff0c;新增con.ldif 创建一个组织 安装OpenResty 下载后端 下载前端 部署后端 部署前端 三、管理动态字段 钉钉 企业微信 飞书 四、…

GPT如何避免从入门到放弃(一)——认识GPT

第一讲&#xff1a;认识GPT GPT的全称&#xff1a;Generative Pre-trained Transformer——生成式 预训练 变换模型 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种基于Transformer架构的大型语言模型。它由OpenAI开发&#xff0c;并在不同版本中不断…

QQ怎么上传大于1G的视频啊?视频压缩这样做

当我们想要在QQ上分享一段大容量的视频时&#xff0c;往往会因为超过1G的限制而感到无助。不过&#xff0c;不用担心&#xff0c;今天我们将为你介绍三种可以压缩视频大小的方法&#xff0c;一起来看看吧~ 一、嗨格式压缩大师 嗨格式压缩大师是一款专业的视频压缩软件&#xf…

Multisim14.0仿真(二十四)石英晶体多谐振荡器

一、仿真原理图&#xff1a; 二、仿真效果图&#xff1a;

基于Vue+ELement实现增删改查案例与表单验证

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《ELement》。&#x1f3af;&#x1f3af; &#x1…

航天与航空的区别,今天终于弄清楚啦!

航天与航空的区别 一&#xff1a;什么是航天&#xff1f; 航天的由来 航天(Spaceflight)&#xff0c;又称空间飞行、太空飞行、宇宙航行或航天飞行&#xff0c;是指进入、探索、开发和利用太空(即地球大气层以外的宇宙空间&#xff0c;又称外层空间)以及地球以外天体各种活动…

Java高级应用——异常处理

文章目录 异常处理概念Java异常体系Error 和 Exception编译时异常和运行时异常Java异常处理的方式 异常处理 概念 异常处理是在程序执行过程中遇到错误或异常情况时的一种机制&#xff0c;它允许程序在错误发生时进行适当的处理&#xff0c;而不会导致程序崩溃或产生不可预测…

pdf怎么调整大小kb?pdf文件过大这样压缩

在日常的工作和生活中&#xff0c;我们常常会遇到需要调整PDF文件大小的问题。有时候&#xff0c;我们需要将大型的PDF文件上传到某些平台&#xff0c;但平台的限制让我们不得不压缩文件的大小。那么&#xff0c;如何有效地调整PDF文件的大小呢&#xff1f; 一、使用嗨格式压缩…

第三方开源测试框架 pytest

本篇文章是聊聊 Python 的单元测试框架&#xff0c;在Python 世界中最火的第三方单元测试框架&#xff1a;pytest。 它有如下主要特性&#xff1a; assert 断言失败时输出详细信息&#xff08;再也不用去记忆 self.assert* 名称了&#xff09;自动发现 测试模块和函数模块化夹…

ai智能写作软件,免费自动写作软件

无论你是一名热衷于撰写博客的博主&#xff0c;还是一位为企业撰写广告宣传的创意写手&#xff0c;都会面临一个共同的问题&#xff1a;时间和创意的压力。随着信息爆炸式增长&#xff0c;写作任务不仅变得更加频繁&#xff0c;还需要不断提供新的、有吸引力的内容&#xff0c;…

软考-计算机网络与系统安全

七层模型 网络技术标准与协议 TCP三次握手 DHCP协议&#xff1a;固定分配、动态分配和自动分配 DNS协议&#xff1a;递归查询&#xff0c;迭代查询 计算机网络分类 按分布范围&#xff1a; 局域网城域网广域网因特网 按拓扑结构分 总线型星型环型树型分布式 网络规划与设…

window.print()打印及出现的问题

<template><transition name"el-zoom-in-center"><div class"JNPF-preview-main"><div class"JNPF-common-page-header"><el-page-header back"goBack" :content"打印通知书" /><div clas…

护眼灯显色度越高越好吗?选儿童护眼台灯应该这样选

显色指数当然是越高越好了。LED灯作为一种新型的照明产品&#xff0c;具有节能、环保、寿命长等优点&#xff0c;受到越来越多的人们的青睐。但是&#xff0c;市面上的LED灯品牌琳琅满目&#xff0c;让人眼花缭乱。那么&#xff0c;LED灯什么牌子好呢&#xff1f;下面我们来推荐…