每日一练【盛最多水的容器】
一、题目描述
11. 盛最多水的容器
给定一个长度为 n
的整数数组 height
。有 n
条垂线,第 i
条线的两个端点是 (i, 0)
和 (i, height[i])
。
找出其中的两条线,使得它们与 x
轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
二、题目解析
这题如果使用暴力枚举,会发现leetcode上显示超时,我们学习算法,目的就是掌握更多优秀的算法,所以暴力枚举直接摒弃掉。下面讲解时间复杂度为O(N)的双指针优秀算法:
我们首先明确一个规律:
以示例一为例,我们直接定义数组最左边为左值,数组的最右边为右值,最左边是1,保持最左边不动,然后移动最右边,会发现任何一个面积都比之前最右边的小,因为面积是由长度和高决定的,但高度不变或者变小,同样变化的还有长度,长度一定是变小的,所以左值直接摒弃。
总体思路就是先找两边高度的小值,并计算当前最大值然后摒弃最小值,缩小数组范围,继续遍历,直到left和right指针相遇,因此该算法的时间复杂度就是O(N)!
三、原码
int maxArea(int* height, int heightSize) {//还是利用快慢指针的算法 int left = 0;int right = heightSize - 1;int minh = 0;int maxArea_ = 0;while(left < right){int flag = 0;//在循环体里的变量尽量都要在循环里面重定义!!!if(height[left] <= height[right]){minh = height[left];flag = -1;}elseminh = height[right];int Area = minh * (right - left);if(maxArea_ < Area)maxArea_ = Area;if(flag == 0)right--;elseleft++;}return maxArea_;
}
相关文章:
每日一练【盛最多水的容器】
一、题目描述 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&…...
Linux C语言 38-进程间通信IPC之信号
Linux C语言 38-进程间通信IPC之信号 本节关键字:C语言 进程间通信 信号量 semaphore 相关库函数:sem_init、sem_post、sem_wait、sem_destroy 提示:先做内容框架梳理,后期进行完善补充! 什么是信号量? …...
前端使用 xlsx.js 工具读取 excel 遇到时间日期少 43 秒的解决办法
在使用 xlsx 读取 excel 的时间格式的数据时,如 ‘2023-11-30’,‘2023/11/30’ ,默认会读取一串数字字符串,如:‘45260’,此时需要在 read 的时候传入一个配置项: import { read } from xlsxc…...
问题记录-maven依赖升级或替换(简单版)
问题背景 项目被检测到有高危漏洞,需要对部分jar进行升级。以一个jar为例记录一下升级过程。 1 找到高危漏洞的包 如果装了maven helper插件则可以在下面查看当前模块依赖包 2 使用maven命令 执行下面这个命令,会将当前项目的信息打印出来,…...
00Hadoop数据仓库平台
在这里是学习大数据的第一站 什么是数据仓库常见大数据平台组件及介绍 什么是数据仓库 在计算领域,数据仓库(DW 或 DWH)也称为企业数据仓库(EDW),是一种用于报告和数据分析的系统,被认为是商业智…...
java-jar包
jar包类似于压缩包,主要是组织和分享自己的Java代码方便,将一组特定的java文件打包,一般是.class文件,不过并不限制文件类型,都可以打包。 jar包中包好清单文件,如果没有指定就会自动生成默认的࿰…...
Flink运行时架构核心概念
Flink运行时架构 JobManager:协调,决定何时调度下一个task,对失败任务做恢复。 ResourceManager: 负责Flink集群中的资源提供、回收、分配,它负责管理task slot。standalone模式下,不能自行启动新的taskmanagerDispatc…...
docker安装达梦数据库并挂在数据卷
离线包下载地址:请点击 1.在线下载 wget https://download.dameng.com/eco/dm8/dm8_20230808_rev197096_x86_rh6_64_single.tar2. 导入镜像 docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar3. 运行容器 docker run -d -p 5236:5236 --restartalwa…...
ROS第一个程序——helloworld
目录 一、工作空间的创建 1.创建工作空间并初始化 2.进入 src 创建 ros 包并添加依赖 二、C实现helloworld C源码实现 编辑 ros 包下的 Cmakelist.txt文件 进入工作空间目录并编译 执行 三、python实现helloworld 进入 ros 包添加 scripts 目录并编辑 python 文件 …...
【Python 训练营】N_17 冒泡排序
题目 列表L [3,2,5,6,1,3,8,1,9],冒泡排序实现从小到大排列。 分析 冒泡排序的基本思想是从序列的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序错误就交换它们的位置,直到整个序列有序为止。具体步骤如下࿱…...
虚拟机docker中的Nginx部署
Nginx部署 : 1.搜索nginx镜像 docker search nginx 2.拉取nginx镜像 docker pull nginx 3.创建目录 mkdir nginx cd nginx mkdir conf cd conf vim nginx.conf 4.编写nginx.conf配置文件 user nginx; worker_processes 1; error_log /var/log/nginx/erro…...
06、pytest将多个测试放在一个类中
官方用例 # content of test_class.py # 实例1 class TestClass:def test_one(self):x "this"assert "h" in xdef test_two(self):x "hello"assert hasattr(x,"check")# content of test_class_demo.py # 每个测试都有唯一的类实例…...
实体类转SQL工具类
主要的目标是简化开发人员在有实体类的情况下时做的重复性工作,提高开发效率。 单个实体类的转换工具类 1.EntityToTableConverter工具类 import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.math.BigDecimal…...
高端制造业中的通用性超精密3D光学测量仪器
超精密光学3D测量仪器具有高精度、自动化程度高、实时反馈和范围广等优势。它能够实现微米级别的精确测量,能够精确测量产品的尺寸、形状和表面粗糙度等,具有广泛的应用价值和重要意义。 超精密光学3D测量仪器配备多种传感器、控制器和计算机系统&#…...
微信公众号非静默授权获取头像和昵称
要在Vue前端应用程序中实现微信公众号非静默授权获取头像和昵称,您需要遵循以下步骤: 1.在微信公众平台上注册并创建一个公众号。 2.在Vue项目中安装wechat-js-sdk库,该库提供了与微信JS-SDK的交互功能。 npm install wechat-js-sdk --sav…...
Java项目学生管理系统四编辑学生
编辑学生 欢迎阅读本篇博客,今天我们将继续探索Java项目学生管理系统的功能,重点关注学生信息的修改模块。在学生管理系统中,修改学生信息是一个关键操作,通过该功能可以方便地更新学生的个人信息、成绩以及其他相关数据。通过本…...
不同数据库进行同步和增量数据(SQL server 与MySQL数据库为例)
场景 最近在做的一个项目需要将远程服务器的SQL server数据库中表的数据传输到本机的MySQL数据库中,并且远程的SQL server数据库表的数据会实时进行更新,并且差不多是一分钟内传输18条数据,例如现在是2023-12-4 15:09,在15:08这个…...
国内的几款强大的AI智能—AI语言模型
R5Ai智能助手是一款由百度研发的文心一言,它支持gpt4 / gpt-3.5 / claude,也支持AI绘画,每天提供十次免费使用机会,无需魔法。该智能助手具有以下优点:会画画,没有使用次数限制,可以在界面上找到…...
linux下恶意软件的七种反分析技术
7 类主流的 Linux 恶意软件反分析/检测躲避技术 反调试(Anti-Debug): 软件调试是恶意软件分析的常⽤⼿段之⼀,但恶意软件可以通过识别调试器特征,实现⾃⾝恶意⾏为的隐藏,或导致调试失败,从⽽规避分析与检测…...
Spring Security OAuth2 认证服务器自定义异常处理
目录 前言WebResponseExceptionTranslator自定义异常处理1、自定义我们响应实体类2、定义响应结果枚举类3、自定义异常转换类4、配置自定义异常转换器5、测试 前言 Spring Security OAuth2 认证失败的格式如下 {"error": "unsupported_grant_type","…...
selenium环境安装
一、下载安装python 下载python安装python设置python环境变量安装selenium (1)下载python 您可以从Python官方网站(https://www.python.org/downloads/)下载Python。在页面上,您将看到不同版本的Python供您选择。根…...
(C++)和为s的两个数字--双指针算法
个人主页:Lei宝啊 愿所有美好如期而遇 和为S的两个数字_牛客题霸_牛客网输入一个升序数组 array 和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果。题目来自【牛客题霸】https://www.nowcoder.com/practice/390da4f7a…...
鸿蒙(HarmonyOS)应用开发——构建页面(题目答案)
判断题 1.在Column容器中的子组件默认是按照从上到下的垂直方向布局的,其主轴的方向是垂直方向,在Row容器中的组件默认是按照从左到右的水平方向布局的,其主轴的方向是水平方向。 正确(True) 2.List容器可以沿水平方向排列,也可…...
Python基础快速过一遍
文章目录 一、变量及基本概念1、变量2、变量类型3、变量格式化输出4、type()函数5、input()函数6、类型转换函数7、注释 二、Python运算/字符1、算数运算2、比较运算3、逻辑运算4、赋值运算符5、转义字符6、成员运算符 三、判断/循环语句1、if判断语句2、while循环语句3、for循…...
等保测评报价相差很大,里面有什么门道
等保测评报价的差异主要源于以下几点: 服务质量评估标准不同:不同的测评机构在测评过程中所提供的服务范围、深度、细节等方面可能存在差异,因此导致报价有所不同。一些机构可能提供全面且细致的测评服务,致力于提供高质量的等保测…...
MATLAB的rvctools工具箱熟悉运动学【机械臂机器人示例】
1、rvctools下载安装 rvctools下载地址:rvctools下载 截图如下,点击红色箭头指示的“Download Shared Folder” 即可下载 下载之后进行解压,解压到D:\MATLAB\toolbox这个工具箱目录,这个安装路径根据自己的情况来选择,…...
如何精准操作无人机自动停机坪?
无人机自动停机坪通过自主导航和避障功能,实现了无人机的自主降落和起飞,在无人机技术领域起到了至关重要的作用。停机坪不仅仅是无人机的起降平台,还具备自动换电或充电等功能,为无人机的自动化提供了关键支持。为更有效地操作无…...
【蓝桥杯】带分数
带分数 题目要求用一个ab/c的形式得到一个值,而且只能在1~9里面不重复的组合。 可以对1~9进行全排列,然后不断划分区间。 #include<iostream> #include<vector> using namespace std; int st[15]; int num[15]; int res; int n;int calc(i…...
软件工程 课堂测验 选择填空
系统流程图用图形符号表示系统中各个元素,表达了系统中各个元素之间的 信息流动 喷泉模型是一种以用户需求为动力,以 对象 为驱动的模型。 软件生存周期中最长的是 维护 阶段。 变换流的DFD由三部分组成,不属于其中一部分的是 事务中心 软…...
计算机网络的分类
目录 一、按照传输介质进行分类 1、有线网络 2、无线网络 二、按照使用者进行分类 1、公用网 (public network) 2、专用网(private network) 三、按照网络规模和作用范围进行分类 1、PAN 个人局域网 2、LAN 局域网 3、MAN 城域网 4、 WAN 广域网 5、Internet 因特…...
杭州网站建设哪家公司好/营销网站类型
在Linux系统下安装docker容器环境 1.容器介绍 1.1 镜像(Image) 镜像可以用来创建Docker 容器,Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像, 用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。1.…...
哪个网站做网店好/微信朋友圈广告在哪里做
开发的网站中,一些文章列表或新闻列表,需要在标题前放置一个小new.gif小图,标记为是最新的新闻或是文章。今天Insus.NET的练习,就是在asp.net mvc的应用程序中实现这样功能。计划使用三种不同的方法来实现。 先从数据库开始&#…...
网上做公务员考题的网站/广州最新新闻
1/**//// <summary> 2 /// 从DataTable中查询数据 3 /// </summary> 4 /// <param name"tb">待处理的DataTable</param> 5 /// <param name"expression">找匹配(条件)(不用where ,直接就"…...
低价机票网站建设/百度竞价优化软件
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.plat…...
望野诗/上海优化网站方法
参考文章https://access.redhat.com/articles/524353 在一个xshell中执行dd命令: time dd if/dev/zero oftest bs100M count256 convfdatasync 在另一个xshell中执行"iotop -tbo -d 1"以获得占用IO比较高的进程信息 [rootabc ~]# iotop -tbo -d 1…...
长沙公司核名网站/淘宝网店代运营正规公司
IO多路复用socket在客户端与服务端建立连接后,之后的请求都需要等待原生的socket服务端只能在同一时刻处理一个请求IO多路复用:可以监听多个文件描述符(socket对象),一旦文件描述符的状态出现变化,就会感知到一旦有人给服务器发送请求,服务端的socket就会发生变化或服务端通过S…...