力扣第42题 接雨水

滑模控制理论(SMC)概述 滑模控制理论(SMC)概述一、背景二、数学理论三、高维拓展四、分析 一、背景 滑模控制理论(Sliding Mode Control, SMC)是一种建立在现代控制理论基础上的控制理论,主要数学核心为李雅普诺夫函数。 滑模控制的核心思想是建立一个滑模面,将被控系统拉取到滑模面上来,使系统沿着滑模面运动。滑模控制的一个优势是无视外部扰动和不确定参数,采用一种比较“暴力”的方式达到控制的目的。 其思想和反步法有些类似,但数学实现起来更加方便而不抽象。相比反步法,滑模控制没有复杂的数学计算,也不会出现“微分爆炸” 阅读详情

原文链接
原文是带着图片讲解,过程还算详细
在这里插入图片描述
上题是一个对题目的举例说明
本次解题中用这个图
在这里插入图片描述
我认为这个图涵盖了可能出现的情况,讲解会比较好一点
第一种方法是暴力法,时间复杂度为O (n^2) 空间复杂度为O(1)

public int trap02(int[] height) { 
    int sum = 0;   
    //最两端的列不用考虑,因为一定不会有水。所以下标从 1 到 length - 2    
    for (int i = 1; i < height.length - 1; i++) { 
        int max_left = 0;       
        //找出左边最高        
        for (int j = i - 1; j >= 0; j--) {  
            if (height[j] > max_left) {  
                max_left = height[j];  
            }       
        }        
        int max_right = 0;       
        //找出右边最高       
        for (int j = i + 1; j < height.length; j++) { 
            if (height[j] > max_right) {  
                max_right = height[j];   
            }       
        }       
        //找出两端较小的       
        int min = Math.min(max_left, max_right); 
        //只有较小的一段大于当前列的高度才会有水,其他情况不会有水  
        if (min > height[i]) { 
            sum = sum + (min - height[i]);       
        }   
    }   
    return sum;
}

每一步的前进都让 当前元素的前边和后边比较,找出前边后边的最小值然后再和当前元素比较,看是否能放入水,代码不好直接阅读的话可用箭头在上图中来一步一步前进
,画图有助于理解

第二种方法为双指针法
具体分析可以点文章开头的原文阅读,此处稍微提及

在这里插入图片描述
大体的思想就是从左右两边开始遍历 如果左边的最高的小于右边的最高的,那么就从左边开始前进,找能存放的水量,反之也一样,在指针前进的过程中更新最大值,通过两边的最大值比较到底应该从哪边走,因为存水量取决于最小的那一端

public int trap(int[] height) {
    if (height.length == 0) return 0;
    int left = 0;
    int right = height.length-1;
    int leftMax = 0;
    int rightMax = 0;
    int result = 0;
    while (left <= right) {
      if (leftMax < rightMax) {
        result += leftMax - height[left] > 0 ?
            leftMax - height[left] : 0;
        leftMax = Math.max(leftMax, height[left]);
        left++;
      } else {
        result += rightMax - height[right] > 0 ?
            rightMax - height[right] : 0;
        rightMax = Math.max(rightMax, height[right]);
        right--;
      }
    }
    return result;
  }

时间复杂度为O(n^2)空间复杂度为O(1)
第三种方法是按照行求
具体看原文
https://leetcode-cn.com/problems/trapping-rain-water/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-w-8/

EtherCAT总线运动控制学习笔记(RXXW_Dor) 说到总线控制,就要说到报文、对象字典、PN通信我们大部分会说报文,EtherCAT通信我们常说对象字典,叫法不一样,但是原理基本一致,下面我们简单认识下上面是对象字典。 阅读详情

相关推荐

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1113

力扣第42题:接雨水——单调栈

LeetCode第42题 接雨水 单调栈

qq_43903506的博客 3994

高效爬取懂车帝车型数据:从静态解析到动态反爬实战

本文详细解析了如何高效爬取懂车帝车型数据,从静态HTML解析到动态接口反爬的完整实战路径。文章重点介绍了使用浏览器开发者工具定位数据、应对CSS混淆与参数加密等反爬策略,并提供了整合静态与动态抓取逻辑的Python代码示例,帮助开发者稳健地获取结构化车型信息。

wind6的博客 937

力扣——42.接雨水(困难难度)——条条大路通罗马

42.接雨水Trapping Rain Water——力扣一道有意思的题一级目录原链接题目描述思路代码实现 一级目录 原链接 力扣原题:接雨水 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6

g55zhw93的博客 2240

从YOLOv8到RTDETR:如何将训练后的YOLO指标无缝转换为COCO格式

本文详细介绍了如何将训练后的YOLOv8指标无缝转换为COCO格式,特别适用于RTDETR模型的评估。通过数据准备、指标转换流程和实际项目经验,帮助开发者解决YOLO与COCO指标差异问题,提升模型评估的准确性和权威性。

weixin_29085151的博客 378

《数学建模与数学实验》第5版 线性规划 习题3.4

1. 某鸡场有1000只鸡,用动物饲料和谷物混合喂养. 2. 某工厂用A1,A2两台机床加工B1,B2,B3三种不同零件. 3. 某工厂利用两种原料甲、乙生产$A_1、A_2、A_3$三种产品. 4. 每班的护士在值班开始时向病房报到,连续工作8个小时. 5. 某工厂生产 A1 、A2 两种型号的产品 6. 有两个煤厂A,B 7. 某工厂制造三种产品,生产这三种产品需要三种资源 8. 已知某工厂计划生产1,2,3三种产品,各产品需要在ABC设备加工。...

hexiaosi_的博客 2万+

【LeetCode力扣】42. 接雨水

42. 接雨水 - 力扣(LeetCode)leftMax用于记录当前左指针left经过的最大高度,同理rightMax用于记录当前左指针right经过的最大高度。下标 i 处能否接水以及接到水的数量其实取决于左指针left到 i 时所经过的最大高度leftMax与右指针right到 i 时所经过的最大高度rightMax它们之间的较小值。

Hacynn的博客 2757

医学影像处理实战:用SimpleITK将CT数据重采样到统一尺寸(附完整代码)

本文针对医学影像分析中多源CT数据尺寸不一致导致深度学习模型训练失败的问题,提供了基于SimpleITK的实战解决方案。通过深入解析图像尺寸与间距的关系,详细阐述了如何通过调整体素间距进行重采样,而非简单补零,从而在保持图像物理尺寸不变的前提下,将数据统一到固定尺寸,确保输入网络的3D数据空间对齐且解剖信息准确。

weixin_29062671的博客 269

【力扣】- 接雨水

题目: 题目链接 说明: 题解 代码: class Solution { public int trap(int[] height) { int left = 0; int right = height.length - 1; int leftMax = 0,rightMax = 0; int ans = 0; while (left < right) { leftMax = Math.

tran_sient的博客 441

YOLOv11模型压缩技术全面对比:剪枝、量化、蒸馏的原理与实战

YOLOv11模型压缩技术综述 模型压缩技术是解决计算资源受限环境下部署深度学习模型的关键。本文系统介绍了YOLOv11模型压缩的三种核心技术:剪枝、量化和蒸馏。剪枝技术通过移除冗余参数实现模型轻量化,包括结构化剪枝(通道/卷积核剪枝)和非结构化剪枝;量化技术通过降低数值精度(如FP32→INT8)减少存储和计算量;蒸馏技术则利用教师模型指导学生模型训练,在保持精度的同时减小模型规模。三种技术可单独或组合使用,在工业质检、智慧安防等边缘计算场景中发挥重要作用,使YOLOv11在保持80%精度的同时减少70%

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 577

闲鱼爬虫实战:模拟手机端破解反爬策略,爬取指定商品搜索数据,爬取闲鱼搜索指定商品(需手机端模拟)o 技术点:抓包分析、cookie与token

技术点作用抓取手机 App 请求,分析 API 结构、Header、参数加密情况requestsPython 中最常用的 HTTP 库,用于发送模拟请求Session 对象自动管理 Cookie,保持会话User-Agent & 设备特征模拟手机型号、系统版本,绕过服务端检测闲鱼部分接口存在签名,需要逆向或复用有效 Token多线程/异步提高爬取效率(需节制,避免封 IP)解析 HTML 或 JSON 数据注意:闲鱼的接口加密程度中等偏上,部分接口存在动态签名(如x-signx-mini-wua。

2201_76125261的博客 712

力扣---接雨水---单调队列+动态规划+双指针

双端队列+动态规划+双指针

sweet_Mary的博客 875

RT-DETR训练前的准备,将数据集划分成训练集、测试集验证集(附完整脚本及使用说明)

在计算机视觉领域,当我们着手训练一个模型时,。其中,将数据集划分为和更是一项基础性且关键的操作。这篇博客分析了这一划分背后的原因、其重要意义以及如何通过代码实现,帮助大家更好地理解和运用这一技巧,。

Limiiiing的博客 906

力扣(LeetCode)100题:42.接雨水

本文介绍了LeetCode"接雨水"问题的三种解法。双指针解法通过左右指针从两边遍历,计算当前位置与左右最大高度差来累加雨水;动态规划解法预处理左右最大高度数组,用空间换时间将复杂度优化到O(n);单调栈方法利用递减栈结构实时计算低洼区域积水。三种方法各有特点,双指针空间最优(O(1)),动态规划思路直观(O(n)空间),单调栈则模拟了逐层积水的过程(O(n)空间)。

sweet_ran的博客 1097

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

力扣第42题 接雨水

记录一下刷题历程 力扣第42题 接雨水。

buaichifanqie的博客 1527

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

接雨水(LeetCode 42题)五种算法解析

min(left_max , right_max) , 我们用双指针动态维护 left_max 和right_max的值,可以得到,区间[0 , L]的最大值 left_max,区间 [R , n-1] 的最大值right_max,先找到全局最高的那根柱子,以最高柱子为中心把数组分成。的柱子的高度图,计算按此排列的柱子,下雨之后 能接多少雨水。

gwq2098321904的博客 1602

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LeetCode第42题_接雨水

给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

qq_40263592的博客 1144

【力扣】第42题:接雨水

我们可以用两个数组,一个用来记录每一个坐标值的左边中柱子的最高值,一个用来记录每一个坐标值右边中柱子的最高值。当我们要记录某一个坐标值能盛装多少水时,根据上面提供的公式,只要在这两个数组中取出该坐标对应的值即可。解读:给定一个数组,使数组的值为高形成柱子,按照短板效应原理能剩多少水。

m0_74289770的博客 534

Leetcode力扣解题记录--第42题 接雨水(动规和分治法)

力扣第42题—接雨水:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

qq_44846784的博客 774

力扣第42题-接雨水

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。个非负整数表示每个宽度为。

qq_42268998的博客 264

精选力扣500题 第21题 LeetCode 42. 接雨水【c++详细题解】

目录1、题目2、思路13、代码14、思路25、代码2 1、题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2: 输入:height = [4,2,0,3,2,5] 输出:9 提示: n == h

林深不见鹿 的博客 1199

再做leetcode42hard题接雨水——双指针法

再做leetcode42hard题接雨水——双指针法

热爱C++和golang的学生 1749

LeetCode第42题:接雨水

LeetCode第42题题目详述解法一解法二解法三 题目详述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例:如图:[0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解法一 暴力法。时间复杂度:O(n^2),空间复杂度:O(1) class Solution { public int trap(in...

weixin_42610002的博客 329

LeetCode高频题42. 接雨水

1)本题跟之前盛水最多的容器颇有相似之处,盛水主要是找底边最大情况下,尽量拿最高的桶,看maxL和maxR谁是瓶颈 2)本题也是来到L,R位置,看看左边大,还是右边大,看看瓶颈,结算水量,然后更新maxL和maxR,o(n)搞定 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。 ............

weixin_46838716的博客 764

【NO.16】LeetCode经典150题-42. 接雨水

接雨水

wang_luwei的博客 1277

LeetCode第42题思悟——接雨水(trapping-rain-water)

LeetCode第42题思悟——接雨水(trapping-rain-water) 文章目录LeetCode第42题思悟——接雨水(trapping-rain-water)知识点预告题目要求示例我的思路优秀解法差异分析知识点小结 知识点预告 指针在数组中移动的技巧; 化整为零的技巧; 题目要求 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 ...

博采众长,自成一派; 478
上一篇: 力扣的 汉明距离
下一篇: 输出一个钻石
凌晨里的无聊人
博客等级 码龄8年 2320粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨里的无聊人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值