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

每日一练【盛最多水的容器】

一、题目描述

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 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&…...

Linux C语言 38-进程间通信IPC之信号

Linux C语言 38-进程间通信IPC之信号 本节关键字&#xff1a;C语言 进程间通信 信号量 semaphore 相关库函数&#xff1a;sem_init、sem_post、sem_wait、sem_destroy 提示&#xff1a;先做内容框架梳理&#xff0c;后期进行完善补充&#xff01; 什么是信号量&#xff1f; …...

前端使用 xlsx.js 工具读取 excel 遇到时间日期少 43 秒的解决办法

在使用 xlsx 读取 excel 的时间格式的数据时&#xff0c;如 ‘2023-11-30’&#xff0c;‘2023/11/30’ &#xff0c;默认会读取一串数字字符串&#xff0c;如&#xff1a;‘45260’&#xff0c;此时需要在 read 的时候传入一个配置项&#xff1a; import { read } from xlsxc…...

问题记录-maven依赖升级或替换(简单版)

问题背景 项目被检测到有高危漏洞&#xff0c;需要对部分jar进行升级。以一个jar为例记录一下升级过程。 1 找到高危漏洞的包 如果装了maven helper插件则可以在下面查看当前模块依赖包 2 使用maven命令 执行下面这个命令&#xff0c;会将当前项目的信息打印出来&#xff0c;…...

00Hadoop数据仓库平台

在这里是学习大数据的第一站 什么是数据仓库常见大数据平台组件及介绍 什么是数据仓库 在计算领域&#xff0c;数据仓库&#xff08;DW 或 DWH&#xff09;也称为企业数据仓库&#xff08;EDW&#xff09;&#xff0c;是一种用于报告和数据分析的系统&#xff0c;被认为是商业智…...

java-jar包

jar包类似于压缩包&#xff0c;主要是组织和分享自己的Java代码方便&#xff0c;将一组特定的java文件打包&#xff0c;一般是.class文件&#xff0c;不过并不限制文件类型&#xff0c;都可以打包。 jar包中包好清单文件&#xff0c;如果没有指定就会自动生成默认的&#xff0…...

Flink运行时架构核心概念

Flink运行时架构 JobManager&#xff1a;协调&#xff0c;决定何时调度下一个task&#xff0c;对失败任务做恢复。 ResourceManager: 负责Flink集群中的资源提供、回收、分配&#xff0c;它负责管理task slot。standalone模式下&#xff0c;不能自行启动新的taskmanagerDispatc…...

docker安装达梦数据库并挂在数据卷

离线包下载地址&#xff1a;请点击 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]&#xff0c;冒泡排序实现从小到大排列。 分析 冒泡排序的基本思想是从序列的第一个元素开始&#xff0c;依次比较相邻的两个元素&#xff0c;如果它们的顺序错误就交换它们的位置&#xff0c;直到整个序列有序为止。具体步骤如下&#xff1…...

虚拟机docker中的Nginx部署

Nginx部署 &#xff1a; 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工具类

主要的目标是简化开发人员在有实体类的情况下时做的重复性工作&#xff0c;提高开发效率。 单个实体类的转换工具类 1.EntityToTableConverter工具类 import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.math.BigDecimal…...

高端制造业中的通用性超精密3D光学测量仪器

超精密光学3D测量仪器具有高精度、自动化程度高、实时反馈和范围广等优势。它能够实现微米级别的精确测量&#xff0c;能够精确测量产品的尺寸、形状和表面粗糙度等&#xff0c;具有广泛的应用价值和重要意义。 超精密光学3D测量仪器配备多种传感器、控制器和计算机系统&#…...

微信公众号非静默授权获取头像和昵称

要在Vue前端应用程序中实现微信公众号非静默授权获取头像和昵称&#xff0c;您需要遵循以下步骤&#xff1a; 1.在微信公众平台上注册并创建一个公众号。 2.在Vue项目中安装wechat-js-sdk库&#xff0c;该库提供了与微信JS-SDK的交互功能。 npm install wechat-js-sdk --sav…...

Java项目学生管理系统四编辑学生

编辑学生 欢迎阅读本篇博客&#xff0c;今天我们将继续探索Java项目学生管理系统的功能&#xff0c;重点关注学生信息的修改模块。在学生管理系统中&#xff0c;修改学生信息是一个关键操作&#xff0c;通过该功能可以方便地更新学生的个人信息、成绩以及其他相关数据。通过本…...

不同数据库进行同步和增量数据(SQL server 与MySQL数据库为例)

场景 最近在做的一个项目需要将远程服务器的SQL server数据库中表的数据传输到本机的MySQL数据库中&#xff0c;并且远程的SQL server数据库表的数据会实时进行更新&#xff0c;并且差不多是一分钟内传输18条数据&#xff0c;例如现在是2023-12-4 15:09&#xff0c;在15:08这个…...

国内的几款强大的AI智能—AI语言模型

R5Ai智能助手是一款由百度研发的文心一言&#xff0c;它支持gpt4 / gpt-3.5 / claude&#xff0c;也支持AI绘画&#xff0c;每天提供十次免费使用机会&#xff0c;无需魔法。该智能助手具有以下优点&#xff1a;会画画&#xff0c;没有使用次数限制&#xff0c;可以在界面上找到…...

linux下恶意软件的七种反分析技术

7 类主流的 Linux 恶意软件反分析/检测躲避技术 反调试&#xff08;Anti-Debug&#xff09;: 软件调试是恶意软件分析的常⽤⼿段之⼀&#xff0c;但恶意软件可以通过识别调试器特征&#xff0c;实现⾃⾝恶意⾏为的隐藏&#xff0c;或导致调试失败&#xff0c;从⽽规避分析与检测…...

Spring Security OAuth2 认证服务器自定义异常处理

目录 前言WebResponseExceptionTranslator自定义异常处理1、自定义我们响应实体类2、定义响应结果枚举类3、自定义异常转换类4、配置自定义异常转换器5、测试 前言 Spring Security OAuth2 认证失败的格式如下 {"error": "unsupported_grant_type","…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

动态规划-1035.不相交的线-力扣(LeetCode)

一、题目解析 光看题目要求和例图&#xff0c;感觉这题好麻烦&#xff0c;直线不能相交啊&#xff0c;每个数字只属于一条连线啊等等&#xff0c;但我们结合题目所给的信息和例图的内容&#xff0c;这不就是最长公共子序列吗&#xff1f;&#xff0c;我们把最长公共子序列连线起…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...