对撞双指针(一) 盛水最多的容器

news/2024/4/30 2:42:17/文章来源:https://blog.csdn.net/weixin_66151870/article/details/129050335

描述

给定一个数组height,长度为n,每个数代表坐标轴中的一个点的高度,height[i]是在第i点的高度,请问,从中选2个高度与x轴组成的容器最多能容纳多少水

1.你不能倾斜容器

2.当n小于2时,视为不能形成容器,请返回0

3.数据保证能容纳最多的水不会超过整形范围,即不会超过231-1

数据范围:

0<=height.length<=1050<=height.length<=105

0<=height[i]<=1040<=height[i]<=104

如输入的height为[1,7,3,2,4,5,8,2,7],那么如下图:

 【解法一】O(N^2)解法

class Solution {
public:int maxArea(vector<int>& height) {// write code hereint n = height.size();if(n < 2)return 0;int res = 0;for(int i = 0; i < n-1; i++){for(int j = i+1; j < n; j++){int _minheight = min(height[i], height[j]);res = max(res, (j-i)*_minheight);}}return res;}
};

【解法二】双指针对撞

这道题利用了水桶的短板原理,较短的一边控制最大水量,因此直接用较短边长乘底部两边距离就可以得到当前情况下的容积。但是要怎么找最大值呢?

可以利用贪心思想:我们都知道容积与最短边长和底边长有关,与长的底边一定以首尾为边,但是首尾不一定够高,中间可能会出现更高但是底边更短的情况,因此我们可以使用对撞双指针向中间靠,这样底边长会缩短,因此还想要有更大容积只能是增加最短变长,此时我们每次指针移动就移动较短的一边,因为贪心思想下较长的一边比较短的一边更可能出现更大容积。

class Solution {
public:int maxArea(vector<int>& height) {// write code hereif(height.size()<2)return 0;int res = 0;int left = 0, right = height.size()-1;while(left < right){int capacity = min(height[left], height[right])*(right-left);   //当前容量res = max(res, capacity);   // 每次维护一个最大值if(height[left] < height[right]) // 短板移动left++;elseright--;}return res;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢

HashMap中为什么引入红黑树&#xff0c;而不是AVL树呢1. 概述 开始学习这个知识点之前我们需要知道&#xff0c;在JDK1.8 以及之前&#xff0c;针对HashMap有什么不同。 JDK 1.7的时候&#xff0c;HashMap的底层实现是数组 链表JDK1.8的时候&#xff0c;HashMap的底层实现是数…

秒杀项目的消息推送

目录 一、创建消费者 二、创建订单链路配置 1.定义RabbitMQ配置类 2.创建RabbitmqOrderConfig配置类 三、如何实现RabbitMQ重复投递机制 1.开启发送者消息确认模式 2.消息发送确认 ① 创建ConfirmCallBacker确认模式 ② 创建ReturnCallBack退回模式 3.创建生产者 …

零信任-Akamai零信任介绍(6)

​Akamai零信任介绍 Akamai是一家专注于分布式网络服务的公司&#xff0c;它提供了一系列的互联网内容和应用加速服务。关于Akamai的零信任&#xff0c;它指的是Akamai的安全架构中不存在任何一个环节是可以被单独的控制或影响的&#xff0c;因此可以提供更高的安全性。通过使…

Utkuici:一款功能强大的Nessus自动化任务实现工具

关于Utkuici 今天&#xff0c;随着信息技术系统的普及&#xff0c;网络安全领域的投资已大幅增加。各种规模的组织都需要进行漏洞管理、渗透测试和各种分析&#xff0c;以准确确定各自机构受网络威胁的影响程度。通过借助漏洞管理工具的行业领先者Tenable Nessus&#xff0c;我…

ChatGPT提示语编写指南

ChatGPT AI 对话模型自 2022 年 11 月下旬开始可用&#xff0c;此后用户一直在探索聊天机器人的局限性和功能。 然而&#xff0c;OpenAI 也在不断地进行调整&#xff0c;因此 ChatGPT 处于不断变化的状态。 但是我们在这个小指南中描述的提示应该是永恒的。 要获得想要的结果&…

Docker getting started

系列文章目录 Docker 概述 Docker getting started 文章目录系列文章目录前言一、容器及镜像的概念二、容器化一个应用三、更新应用四、分享应用五、持久化数据存储volume mount 和 bind mount比较Container volumesbind mounts六、跨多容器的应用七、Docker 其它八、Docker 图…

蓝桥杯刷题024——天干地支

2020国赛 题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个&#xff0c;分别为&#xff1a;甲&#xff08;jiǎ&#xff09;、乙&#xff08;yǐ&#xff09;、丙&#xff08;bǐng&#xff09;、丁&#xff08;dīng&#xff09;、戊&#xff08;w&#xff09…

2月第2周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年2月6日-2月12日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B站…

【C语言技能树】浮点数在内存中的存储

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

企业降本增效的催化剂:敏捷迭代

伴随着开源技术的大爆发&#xff0c;新一代的软件技术如雨后春笋般层出不穷。每家企业在硬件及软件开发上都有许多开源技术可选&#xff0c;目的还是在于提高效率&#xff0c;降低开发成本。 本篇文章&#xff0c;带大家了解下促进企业降本增效的重要理念&#xff1a;敏捷迭代…

信息安全工程

信息安全工程信息安全工程信息安全工程概述信息安全工程理论基础支撑信息安全工程的理论基础质量管理基本概念信息安全工程原理ISSE活动中支持认证和认可的活动信息安全工程监理模型信息安全工程能力评估SSE-CMM&#xff08;系统安全工程能力成熟度模型&#xff09;SSE-CMM 的安…

Spring入门学习

Spring入门学习 文章目录Spring入门学习Spring概述Spring FrameworkIOCIOC容器DIIOC容器的实现类①FileSystemXmlApplicationContext②ClassPathXmlApplicationContext基于XML管理bean入门案例创建类创建xml在Spring配置文件中配置bean测试Spring概述 Spring 是最受欢迎的企业级…

TortoiseSVN的使用

基本概念 版本库 SVN保持数据的地方&#xff0c;所有的文件都保存在这个库中&#xff0c;Tortoise访问的就是远程服务器上的Subversion版本库。 工作拷贝 就是工作副本&#xff0c;可将版本库的文件拷贝到本地中&#xff0c;可以任意修改&#xff0c; 不会影响版本库。在你…

AcWing语法基础课笔记 第二章 printf语句与C++中的判断结构

第二章 printf语句与C中的判断结构 学习语言最好的方式就是实践&#xff0c;每当掌握一个新功能时&#xff0c;就要立即将这个功能应用到实践中。 ——闫学灿 一、printf输出格式 注意&#xff1a;使用printf 时最好添加头文件 #include <cstdio>。 Int、float、double、…

不愧是GitHub点赞飙升的Java10W字面经,面面俱到,太全了!

最新的喜报啊&#xff0c;话不多说&#xff0c;先看图&#xff01;&#xff08;为了保护朋友的隐私&#xff0c;同时还有我自己的隐私&#xff0c;楼主就都打码了~&#xff01;&#xff09; 朋友说到这儿时候我就跟他说&#xff0c;不要只看眼前&#xff0c;要看长远一些&#…

【python】基于Socket的聊天室Python开发

基于Socket的聊天室Python开发一、Socket简述二、创建服务端Server2.1 创建服务端初始化2.2 监听客户端连接2.3 处理客户端消息三、创建客户端Client3.1 创建服务端初始化3.2 发送消息3.3 接收消息3.3 线程工作3.4 线程工作是不是挺好玩的呢&#xff1f;也可以作为课程设计哦&a…

chatgpt系列文章-23.2.15(主要还在发现chatgpt的不足,偏探索,像报告)

Will ChatGPT get you caught? Rethinking of Plagiarism Detection 推荐指数&#xff1a;2 主要内容 文章主要是研究chatgpt出现后&#xff0c;在学术界中可能出现的学术抄袭和剽窃现象。 这篇文章就比较了几种剽窃抄袭软件&#xff0c;来测试是否能够识别chatgpt编写的内…

电子科技大学操作系统期末复习笔记(三):存储器管理

目录 前言 存储器管理 概述 存储管理 存储系统的结构 程序的诞生 空间分类 地址映射 程序链接的方式 静态链接 装入时动态链接 运行时动态链接 程序装入的方式 程序装入的两类三种方法 绝对装入 静态重定位 动态重定位√ 关键点 存储器管理&#xff1a;连续…

人与人之间赚钱的差距在哪里呢?体现在这几个因素中

同样生而为人&#xff0c;同样接受九年制义务教育的熏陶&#xff0c;但最终赚钱能力却千差万别&#xff0c;因此也就形成了我们所谓的圈层&#xff0c;阶层&#xff0c;穷人和富人。 一个人的赚钱能力跟什么有关&#xff1f;资源技能、学历、认知&#xff0c;这些都会决定一个人…

75V的TVS二极管有哪些型号?常用的

瞬态抑制TVS二极管工作峰值反向电压最低3.3V&#xff0c;最高可达513V&#xff0c;甚至更高。很多电子工程师都知道&#xff0c;TVS二极管在实际应用选型过程中&#xff0c;第一步要确认的就是其工作峰值反向电压。2023年春节已过&#xff0c;东沃电子正月初八就开工了&#xf…