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

【双指针】盛水最多的容器

盛水最多的容器

文章目录

  • 盛水最多的容器
    • 题目描述
    • 算法原理
      • 思路一
      • 思路二
    • 代码实现
      • Java代码实现
      • C++代码实现

题目描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0)(i, height[i])

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

**说明:**你不能倾斜容器。

示例 1:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入:[1,8,6,2,5,4,8,3,7]
输出:49 
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 2:

输入:height = [1,1]
输出:1

提示:

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

算法原理

思路一

暴力枚举,两层for循环,没啥意思,会超时

时间复杂度为O(n^2)

思路二

利用单调性,使用双指针来解决问题

时间复杂度O(n)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代码实现

Java代码实现

class Solution {public int maxArea(int[] height) {int left = 0, right = height.length - 1 , ret = 0;while(left < right){int v = Math.min(height[left], height[right]) * (right - left);ret = Math.max(ret, v);if(height[left] < height[right]) left++;else right--;}return ret;}
}

C++代码实现

class Solution {
public:int maxArea(vector<int>& height) {int left = 0, right = height.size() - 1, ret = 0;while(left < right){int v = min(height[left], height[right]) * (right - left);ret = max(ret, v);if(height[left] < height[right]) left ++ ;else right --;}return ret;}
};

相关文章:

【双指针】盛水最多的容器

盛水最多的容器 文章目录 盛水最多的容器题目描述算法原理思路一思路二 代码实现Java代码实现C代码实现 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与…...

win11,引导项管理

1&#xff0c;打开cmd,输入msconfig 2,进入引导选项卡 3&#xff0c;删除不需要的引导项...

YoloV8改进策略:WaveletPool解决小目标的混叠问题,提高小目标的检测精度

文章目录 摘要论文:《抗混叠在微小目标检测中的重要性》1、简介2、相关研究2.1、微小物体检测2.2. 抗锯齿过滤器3、方法3.1. Wavelet Pooling3.2 一致顺序的Wavelet Pooling的WaveCNet3.3、Bottom-Heavy Backbone4、实验4.1、预训练数据集4.2、微小目标检测数据集4.3、抗混叠方…...

JavaScript中的假值对象是什么?

JavaScript是一种非常灵活且强大的编程语言&#xff0c;但有时候它的一些特性可能会让人感到困惑。其中一个常见的问题就是假值对象。在本文中&#xff0c;我们将探讨什么是假值对象&#xff0c;并通过代码示例来解释这个概念。 什么是假值对象&#xff1f; 在JavaScript中&am…...

求二叉树的最大密度(可运行)

最大密度&#xff1a;二叉树节点数值的最大值 如果没有输出结果&#xff0c;一定是建树错误&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我设置输入的是字符型数据&#xff0c;比较的ASCII值。 输入&#xff1a;FBE###CE### 输…...

V100 GPU服务器安装CUDNN教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

RT-Thread Hoist_Motor PID

本节介绍的是一个举升电机&#xff0c;顾名思义&#xff0c;通过转轴控制物体升降&#xff0c;为双通道磁性译码器&#xff0c;利用电调进行操控&#xff0c;具体驱动类似于大学期间最大众的SG180舵机&#xff0c;在一定的频率下&#xff0c;通过调制脉宽进行控制。 设备介绍…...

css 实现文字流光效果

经过调研发现大多滑块验证码中&#xff0c;有一些文字流光效果&#xff0c;因此在这里简单实现一下。 实现主要利用background 渐变背景以及backgorund-clip:text实现。具体代码如下 css部分 .slide {width: 300px;height: 40px;border: 1px solid #ccc;border-radius: 8px;…...

3D格式转换工具

这里记录下自己之前做3D模型格式转换&#xff0c;包括做CAD模型格式转换辅助的一些开源仓库和工具 &#xff08;一&#xff09;转换成gltf工具 gltf作为3D界的jpg标准&#xff0c;如今已经有很多引擎对其进行了支持&#xff0c;这里单独把它列出来 1. obj转glft工具 git仓库…...

seismicunix基础-声波波动方程推导

seismicunix基础-声波波动方程推导 接触波动方程的研究人员都绕不开这个公式&#xff0c;这是在一维状态下波动方程 但是对于这个方程是怎样来的很少有人能说清楚&#xff0c;其中涉及到牛顿第二运动定律&#xff0c;物体的加速度与受到的力有关。 假设一维弦是大量紧密连接的质…...

2024电脑录屏软件排行第一Camtasia喀秋莎

真的要被录屏软件给搞疯了&#xff0c;本来公司说要给新人做个培训视频&#xff0c;想着把视频录屏一下&#xff0c;然后简单的剪辑一下就可以了。可谁知道录屏软件坑这么多&#xff0c;弄来弄去头都秃了&#xff0c;不过在头秃了几天之后&#xff0c;终于让我发现了一个值得“…...

MQTT通信协议使用说明

目录 1 MQTT连接属性1.1 服务器URL(Broker Address)1.2 客户端标识(clientID)1.3 用户名称 & 密码(User Name & Password)1.4 连接超时(Connection Timerout)1.5 心跳间隔 (KeepAlivelnterval)1.6 清除会话(cleanSession) 2 主题&消息2.1 主题2.1.1 订阅主题(SUBSC…...

mysql底层是如何存放数据的

总览 首先总的来说&#xff0c;分为四个层级&#xff0c;行页区段。行就是数据库里的一行数据。 但一次从磁盘读进内存的数据量是一页&#xff08;页是读写的单位&#xff0c;默认16KB一页&#xff09;&#xff0c;页分很多种类&#xff0c;例如数据页、溢出页、undo日志页。 …...

【代码随想录】刷题笔记Day33

前言 Day33虽说是一个月&#xff0c;但是从第一篇开始实际上已经过了8个月了&#xff0c;得抓紧啊 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 前面组合就强调过差别了&#xff0c;这道题是排序&#xff0c;因此每次要从头到尾扫&#xff0c;结合used数组 class So…...

AD从原理图到PCB超详细教程

AD超详细教程 前言一、建立一个工程模板二、原理图1.设计原理图。2.使用AD自带库和网上开源原理图库3.画原理图库4.编译原理图 三、PCB1.确定元器件尺寸大小2.绘制PCB Library①使用元器件向导绘制元件库②原理图与PCB的映射 3.绘制PCB①更新PCB②调整元件位置③布线④漏线检查…...

2023.11.20使用flask做一个简单图片浏览器

2023.11.20使用flask做一个简单图片浏览器 功能&#xff1a; &#xff08;1&#xff09;输入指定路径&#xff0c;打开文件夹 &#xff08;2&#xff09;判断文件格式为图片 &#xff08;3&#xff09;在前端进行预览 &#xff08;4&#xff09;使用bootstrap进行简单美化 ma…...

https和http的区别和优势

大家好&#xff0c;我是咕噜-凯撒&#xff0c;HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;安全超文本传输协议&#xff09;是用于在网络上传输数据的协议&#xff0c;HTTPS相比HTTP在数据传输过程中更加安全可靠&#xff0c;适合对数据安全性要求较高的场景…...

Docker 启动alpine镜像中可执行程序文件遇到 not found

## 1. 问题&#xff1a; docker alpine镜像中遇到 sh: xxx: not found 例如&#xff1a; 在容器内/app/目录下放置了可执行文件abc&#xff0c;启动时提示not found /app/startup.sh: line 5: ./abc : not found ## 2. 原因 由于alpine镜像使用的是musl libc而不是gnu libc&am…...

.net对接阿里云CSB服务

public Response<string> Main(MonthPlanRequest request){string apiName "MonthPlan", postData request.ToJson(); var result ConnectCSB(apiName, postData);return InvokeResult.Fail<string>("访问成功");}/// <summary>///…...

Json数据格式

json比较可读&#xff0c;通过键值对返回。实现通常有两种方式:一种是自己来构造&#xff0c;也就是用一个对象存储数据&#xff0c;在最后输出时将其json字符串化&#xff1b;第二种是使用 RestController 注解实现json数据返回。 第一种 导入依赖坐标&#xff1a; <depe…...

AI工具搭建自动化视频生成访问控制

# AI工具搭建自动化视频生成访问控制&#xff1a;从实战出发的理解 这东西到底是什么 前阵子有个朋友问我&#xff0c;他公司要做一批产品演示视频&#xff0c;每天几百个&#xff0c;人工做肯定不行。但问题是这些视频包含客户特定信息&#xff0c;不能所有人都能访问。这时候…...

Ctool:开发者的“瑞士军刀“,告别工具切换的烦恼

Ctool&#xff1a;开发者的"瑞士军刀"&#xff0c;告别工具切换的烦恼 【免费下载链接】Ctool 程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac 项目地址: https://gitcode.com/gh_mirrors/ct/Ctool 深夜两点&#xff0c;屏幕前的…...

yuzu模拟器完全指南:免费在PC上畅玩任天堂Switch游戏的终极教程

yuzu模拟器完全指南&#xff1a;免费在PC上畅玩任天堂Switch游戏的终极教程 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu yuzu是目前最受欢迎的开源任天堂Switch模拟器&#xff0c;让你能够在Windows、Linux和An…...

Hermes Agent 深度解析:从架构、安装、核心能力到与 OpenClaw 的区别

一、前言 近两年,AI Agent 项目越来越多。从早期的 AutoGPT,到面向开发者的 Claude Code、OpenAI Codex CLI,再到各种本地个人助手类项目,大家都在探索一个问题: 如何让大模型不只是“回答问题”,而是真正能调用工具、执行任务、积累经验,并长期为用户工作? NousResea…...

【仅限首批2000名开发者】:获取奇点大会AI原生CR沙箱环境访问权+5套企业级审查策略模板(含金融/车规/医疗三类合规预置包)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生代码审查&#xff1a;2026奇点智能技术大会Code Review新范式 在2026奇点智能技术大会上&#xff0c;AI原生代码审查&#xff08;AI-Native Code Review&#xff09;正式取代传统人工规则引擎混合…...

【STM32F407实战】FSMC总线驱动AD7606实现8通道同步数据采集与J-Scope实时波形分析

1. 项目背景与核心价值 在工业测量和自动化测试领域&#xff0c;多通道同步数据采集一直是关键需求。传统方案往往面临通道间延迟、精度不足等问题。AD7606作为一款16位8通道同步采样ADC芯片&#xff0c;配合STM32F407的FSMC总线&#xff0c;能够实现10V量程下200Ksps的高速采集…...

TQVaultAE终极指南:如何彻底解决《泰坦之旅》仓库管理难题

TQVaultAE终极指南&#xff1a;如何彻底解决《泰坦之旅》仓库管理难题 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾在《泰坦之旅》中为仓库空间不足而烦恼&#…...

OpenAI API 工程化落地:稳定可控的生产级接入指南

1. 这不是“调用一个接口”那么简单&#xff1a;一个真实从业者眼中的 OpenAI API 入门真相 我带过十几支从零起步的业务团队落地 AI 功能&#xff0c;见过太多人把 OpenAI API 当成“复制粘贴几行代码就能上线的魔法按钮”。结果呢&#xff1f;第一天跑通 gpt-3.5-turbo 返回…...

终极B站成分检测器:3秒看穿评论区用户真实身份!

终极B站成分检测器&#xff1a;3秒看穿评论区用户真实身份&#xff01; 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分&#xff0c;支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker …...

AI OS:从聊天到执行的AI辅助开发范式转变

1. 项目概述&#xff1a;从“聊天伙伴”到“执行团队”的AI范式转变如果你和我一样&#xff0c;在过去一年里深度使用过Cursor、Claude或者ChatGPT来辅助开发&#xff0c;那你一定经历过这种“甜蜜的烦恼”&#xff1a;AI能给出惊艳的代码片段&#xff0c;但当你试图让它帮你构…...