台阶储水问题

台阶积水问题算法思考 台阶积水算法探讨 关于台阶积水算法思路的梳理。 问题 有一组不同高度的台阶,有一个整数数组表示,数组中每个数是台阶的高度,当开始下雨了(雨水足够多)台阶之间的水坑会积水多少呢? 如下图,可以表示为数组[0,1,0,2,1,0,1,3,2,1,2,1],返回积水量6。 思路梳理 考虑积水量,可以分析每一级台阶会有多少积水。 首先开头和结尾的台阶不会有积水。中间部分的台阶存在积水,那么它的两端肯定有比... 阅读详情

Question:

在这里插入图片描述

Analysis:

stage_water.png

Solution:

#include <iostream>

int main(int argc, char **argv)
{
    int stages[] = {3, 0, 1, 2, 1, 0, 2, 3, 0, 2, 0, 2};
    int sum = 0;

    for (int i = 0; i < 12 - 1; i++)
    {
        for (int height = stages[i]; height > stages[i + 1]; height--)
        {
            for (int j = i + 1; j < 12; j++)
            {
                if (stages[j] >= height)
                {
                    sum += (j - i - 1);
                    break;
                }
            }
        }
    }

    std::cout << sum << std::endl;

    return 0;
}
IT公司面试题--最大储水量问题 看下面这个图片,在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6],假如开始下雨了,那么墙之间的水坑能够装多少水呢?” 以1×1的方块为单位计算容积。所以,在上边的图中下标为1以左的都会漏掉。下标7以右的也会漏掉。剩下的只有在1和6之间的一坑水,容积是10。如下图所示。 阅读详情

相关推荐

《程序员代码面试指南》容器储水问题——java实现

容器储水问题 题目描述: 给定一个数组代表一个容器, 比如[3,1,2,4], 代表0位置是一个宽度为1,高度为3的直方图。 代表1位置是一个宽度为1,高度为1的直方图。 代表2位置是一个宽度为1,高度为2的直方图。 代表3位置是一个宽度为1,高度为4的直方图。 所有直方图的底部都在一条水平线上,且紧靠着。 把这个图想象成一个容器,这个容器可以装3格的水。 给定一个没有负数的数组arr,返回能装几...

GZY_BUPT的博客 1199

C++--台阶问题

台阶问题 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级,求该青蛙跳上一个n级的台阶共有多少种跳法(先后次序不同算不同的结果)? 方法一(递归) 思路: 一共n阶台阶,青蛙每次可以跳1级或者2级,则每次剩下(n-1)级、(n-2)级,若剩下(n-1)级,则重复还剩n级的选择。So,用递归。 f(n)=f(n-1)+f(n-2)。(前提是先后次序不同算不同的结果) int f(int data)...

海到无边天作岸 山登绝顶我为峰 5931

储水池抽样算法原理与实现

记得在实习那会,涉及到抽奖的解决方案,即一天以k/n的概率中奖,要求给出简单高效的算法,其中n只有在结束时才知道。换言之,题意即为如何从未知或者很大样本n空间中随机地取k个数,保证每个被取到的概率为n/k。解决此题的很好方法就是储水池算法Reservoir Sampling Algorithm。

晓风残月xj 3072

P1192 台阶问题(C++_递推)

题目描述 有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。 输入格式 两个正整数N,K。 输出格式 一个正整数,为不同方式数,由于答案可能很大,你需要输出ans mod 100003后的结果。 输入输出样例 输入 #1 5 2 输出 #1 8 说明/提示 对于20%的数据,有N≤10,K≤3; 对于40%的数据,有N≤1000; 对于100%...

ccql's Blog 2539

java 二维码生成及其标签打印

本文主要内容 二维码生成 二维码标签预览及打印 二维码生成 笔者此次的二维码是通过调用第三方接口生成的,具体流程如下: 根据规范要求调用第三方接口,返回二维码下载地址及二维码图片的属性值(图片大小等) 根据返回的值获取二维码下载地址,根据地址下载二维码图片,保存至本地磁盘及记录数据信息 扫描二维码跳转相应地址,显示资产的基本信息 最终生成的二维码如下图所示: 预览并批量打印二维码标签 先...

孙小牟的博客 4942

【实战指南】OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

hampeter的博客 1802

算法:台阶蓄水问题

描述: 给一个数组,脑补成二维柱状图,然后加水,能存多少水? 输入: 【0,1,0,2,1,0,1,3,1,2,1】注:蓝色部分 输出: 6 注:红色部分,解释,能存6个单位的水 ...

jerryzhou的博客 1162

告别Root!用Termux+ADB在Android上玩转自动化(保姆级教程)

本文详细介绍了如何在非Root环境下使用Termux和ADB实现Android自动化操作,无需Root权限即可运行自动化脚本。通过Termux搭建Linux终端环境,结合ADB无线调试和Python脚本,实现点击、滑动、截图等自动化功能,适用于定时任务、自动签到等场景。

weixin_42548888的博客 540

经典算法--最大存水量问题

题目:给出一个数组代表围柱的高度,求能围柱的最大的水量,例如数组{ 5,2,3,2,4 },最大水量为5。如下图:黄色部分为围柱,绿色部分是能够围住的水,图中围柱的高度依次为 5,2,3,2,4最多能围住的水量是5。 思路:求出每个柱子上面

有图有真相 1万+

智能环境感知:STM32多传感器数据融合与报警策略设计

本文详细介绍了基于STM32的多传感器数据融合系统设计,整合DHT11温湿度传感器、MQ-2烟雾检测和光照强度检测模块,通过智能算法实现环境感知与动态报警。系统采用数据滤波、多传感器校验和自适应阈值策略,显著提升监测精度与可靠性,并通过OLED显示屏提供清晰的多级报警界面。

plant的博客 202

S32K3xx系列DMA驱动实战:EB配置与Mcal接口应用全解析(含Adc硬件触发示例)

本文深入解析S32K3xx系列MCU的DMA驱动开发,涵盖EB工具配置与Mcal接口应用,特别包含ADC硬件触发示例。通过详细架构分析、实战配置步骤和工业级应用案例,帮助开发者掌握AUTOSAR环境下DMA高效数据传输技术,提升汽车电子和工业控制系统的性能。

weixin_29162439的博客 465

柱状图储水问题

题目: 给定一个数组,每个位置的值代表一个高度,那么整个数组可以看做是一个直方图, 如果把这个直方图当作容器的话,求这个容器能装多少水 例如:3,1,2,4 代表第一个位置高度为3,第二个位置高度为1,以此类推,这个直方图能装3格水。如图红色地方: 思路:很多人会误想到正出什么波峰波谷,这就从开始就错了,比如两个相邻的波峰之外还有更大的波峰,这么说来你中间这连个波峰波

grave2015的博客 1169

ModuleNotFoundError: No module named‘langchain.schema.output parserlangchain.schema is not a package

电脑里现有的langchain库版本与import所需的不同,卸载原有langchain,重新下载最新的langchain。在步骤1后,若仍不可运行。在确保已重新下载新langchain后,重启python后,可正常运行。在版本号中填入所需的langchain版本号,可在requirements.txt查看。运行如下代码时,出现error。

weixin_45751925的博客 1713

储水问题题解

储水问题题解

cyyzzxx的博客 171

Qt/C++ 音视频开发: 共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步

通过共享解码线程和重复利用解码技术,可以显著降低CPU占用,提高多媒体应用的性能。同时,画面和进度同步技术保证了视频播放过程的平滑体验。

走向CTO的路上... 988

DiffusionDriveV2 (1) : 端到端自动驾驶中受强化学习约束的截断扩散建模

DiffusionDriveV2:强化学习约束的截断扩散模型在端到端自动驾驶中的应用 本文针对端到端自动驾驶中扩散模型面临的模式崩溃问题,提出DiffusionDriveV2框架。该方法通过引入强化学习约束,解决了DiffusionDrive依赖模仿学习导致的多样性与持续高质量之间的困境。主要创新包括: 采用尺度自适应乘法噪声促进广泛探索 提出锚点内GRPO管理单个锚点样本间的优势估计 设计锚点间截断GRPO整合全局视角,避免不同驾驶意图间的不当比较 实验表明,该方法在NAVSIM基准测试中达到最先进水平(

@bangbang的博客 381

储水罐加水V2.0

通过按钮自动加水,当达到高液位后,停止加水,加水顺序从储水罐A到储水罐E

yue008的博客 613

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

储水池算法

假设有一个源源吐出不同球的机器, 只有装下10个球的袋子,每一个吐出的球,要么放入袋子,要么永远扔掉 如何做到机器吐出每一个球之后,所有吐出的球都等概率被放进袋子里1~10号球进袋子的概率均等,都是100% 现在吐出i号球,以10/i的概率决定这个球进不进袋子 如果决定让i号球进袋子等概率随机扔掉一个,让i号球进来 淘汰3号球的概率 11号球到来,3号球淘汰的概率1/11,活下来的概率10/11 12号球到来,3号球淘汰的概率1/12,活下来的概率11/12 13号球到来,3号球淘汰的概率1/13,活下来的

xiaolu567的博客 403

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

cadence安装完怎么打开_储水式热水器安装教程 储水式热水器怎么使用 看完你就都懂了...

但是储水式热水器怎么安装呢?很多用户在安装热水器的时候会选购使用储水器热水器,这样热水器中会存放一定的水分。这样如果在停水的话热水器中还有一些存放的水分。但是储水式热水器怎么安装呢?很多用户不了解储水式热水器怎么安装还有储水式热水器怎么使用。下面小编就来简单阐述储水式热水器安装教程以及储水式热水器怎么使用的问题。有需要的用户们来了解一下吧!一、储水式热水器安装教程储水式热水器怎么安装呢?很多用户不...

weixin_42284380的博客 494

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

leetcode11:最大储水量

                                    leetcode11:最大储水量 文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在一亿人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍 //import java.lang.Math; import static java.lang.Math.min; import static jav...

weixin_42248302的博客 624

代码题(51)— 一维储水问题

1、11.盛最多水的容器 给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且n的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4...

dbsggal90047018的博客 206

储水罐加水V1.0

通过控制循环控制电磁阀和电机实现给5个储水罐加水

yue008的博客 340

塑料储水装置及配套模具设计(任务书)

因实际环保需要,家庭生活用水部分循环利用,其中储水装置的大小,空间利用吻合度等方面需要满足一定的约束条件,需要多种规格和容量储水装置,现在试设计相关储水装置,并考虑采用模具批量生产应该提供的技术图纸。要求 (对部分有实习环节的专业,提出实习或调研的具体要求,包括调研提纲、实习时间、地点和具体内容要求;10周制定设计方案,确定模具总体结构形式,进行相关的设计计算与校核,完成零件的选取及绘制,零、部件的结构设计及绘制工作,;(指导教师对毕业设计(论文)的进度计划提出要求,至少详细到前期、中期和答辩阶段)

毕业作品网站 447

PTA储水问题(双指针|单调栈)

给定一系列非负整数,将这些数据看作一个柱子高度图,计算按此排列的柱子,下雨之后能接多少雨水。(数组以外的区域高度视为0) 数据范围:0≤n≤106 ,数组中每个值满足 0 <val≤109 输入格式: 第一行是n值,第二行是n个非负数 输出格式: 输出能接的雨水单位数 输入样例: 6 3 1 2 5 2 4 输出样例: 5 说明:柱子高度分别为3,1,2,5,2,4, 如图所示。在这种情况下,可以接 5个单位的雨水,蓝色的为雨水 。 解法:使用单调栈(单调递增栈:单调递

北边一颗小星星 524

有可控冷热水隔板的储水式电热水器

“有可控冷热水隔板的储水式电热水器”专利,是在现在储水式电热水器内胆中,加装一块可控、可移动隔板,将内胆中的热水区域和冷水区域分隔开来。主要是解决两个问题,一是可调整热水器加热容量,达到需要多少热水,加热多少热水的功能;二是热水产出过程中,消除冷热水混合区域,达到多出热水和温度恒定的功能。最终达到节能和提高使用舒适度的目的。 上述专利解决的两个问题,是储水式电热水器一直想解决而一直未解决的问题,...

songshu121800的博客 570

算法题解—双指针—储水量

描述 给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 输入 输入一个正整数N表示数组的大小 再输入一行正整数 输出 输出一个数字表示这个直方图的储水量 题解 朴素做法: 求总的储书量就是求x轴上每一点能储存多少水量之和 那么对于每一点,可以求出其左半边中最长的那一个直方柱和右半边最长的直方柱,两个

Archerrrrr的博客 319
上一篇: 递归实现旋转矩阵
下一篇: Qt实现带动画的循环滚动的效果
Superain丶
博客等级 码龄11年 9粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值