【程序员面试金典】面试题 17.21. 直方图的水量

news/2024/11/28 5:47:11/

【程序员面试金典】面试题 17.21. 直方图的水量

    • 题目描述
    • 解题思路

题目描述

描述:给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 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

解题思路

思路:最直观的想法是,当前直方图所能存储水量等于左边最大值和右边最大值之间的最小值减去当前高度,直方图的水量即所有直方图的水量之和。首先分别前向遍历、后向遍历求出当前直方图左边(包含当前)、右边(包含当前)的最大值,然后再前向遍历求出当前直方图水量即可。

int trap(vector<int>& height) 
{int n=height.size();//特殊判断if(n==0)return 0;//存储当前元素左边(包含当前)的最大值vector<int> left(n,0);//存储当前元素右边(包含当前)的最大值vector<int> right(n,0);left[0]=height[0];right[n-1]=height[n-1];for(int i=1;i<n;i++)left[i]=max(left[i-1],height[i]);for(int i=n-2;i>=0;i--)right[i]=max(right[i+1],height[i]);int res=0;//所能存储水量等于左边最大值和右边最大值之间的最小值减去当前高度for(int i=0;i<n;i++)res+=min(left[i],right[i])-height[i];return res;
}

总结:注意,之所以包含当前,是为了方便计算,因为有可能当前就是最高的。


http://www.ppmy.cn/news/660699.html

相关文章

无需序列号安装Photoshop CS6

本人亲测&#xff0c;简单好用&#xff0c;特适合小白&#xff0c;详细步骤见&#xff1a;https://jingyan.baidu.com/article/e4511cf33494812b845eaf0a.html

PS批量处理

动作demo 窗口 > 动作,开始记录动作魔棒点击边角,删除背景,导出图片,记录动作完成文件 > 批处理 > 组 > (刚才录下的动作) > 选择需要抠的文件夹选择输出的文件夹,起始序列号01 识别处理人脸 图层转换为智能对象复制两层图层滤镜 -> 液化,该图层改为 减去…

三菱电机NC monitor 序列号申请

从昨天开始就一直在网上搜索序列号&#xff0c;还问了购买的厂家&#xff0c;但是都没得到有用的。找了好久&#xff0c;才在打电话找客服时在官网看到了申请序列号的链接&#xff0c;因为很难找&#xff0c;所以分享出来供大家申请。 注意&#xff1a;申请之前需要先注册一下网…

PhotoShop永久序列号

下一个正版的PS&#xff0c;在安装时会出现PS5初次使用序列号的页面&#xff0c;你可以忽略&#xff0c;点击试用。进去后点帮助里的更新&#xff0c;更新到目前的最新版本。OK关闭PS&#xff01; 修改HOST文件&#xff0c; 用记事本打开"C:\\windows\\system32\\drivers\…

ps cs5安装

------------ 安装必看&#xff1a; ------------ 列表下面两个文件是 Pre-release 版&#xff0c;序列号经验证可以使用。请按需下载。 软件运行如果遇到“14001:并行配置错误”、“15002:应用程序初始化错误”或点击运行之后长时间无反应的情况&#xff0c;请安装 VC2008…

Odoo与浪潮合资研发PS Cloud之如何处理序列号

序列号跟踪用于跟踪每笔交易中带有序列号的产品。您可以使用序列号跟踪产品的当前位置。当产品从一个位置移动到另一个位置时&#xff0c;系统将根据产品的最后移动自动识别产品的当前位置。这样你就可以得到最后一个移动产品的位置。 Odoo中的双条目管理使您能够运行非常高级…

photoshop序列号问题

安装完毕后&#xff0c;先不打开 修改hosts文件添加&#xff1a; 127.0.0.1 activate.adobe.com 127.0.0.1 practivate.adobe.com 127.0.0.1 ereg.adobe.com 127.0.0.1 activate.wip3.adobe.com 127.0.0.1 wip3.adobe.com 127.0.0.1 …

PS CS4 序列号永久使用

1330-1013-9701-0823-9348-7240 or 1330-1537-0384-0164-5110-0609 方法如下&#xff1a; 1&#xff0c;先用keygen算号并安装&#xff0c;或者从百度Google搜索一下CS4的序列号 2&#xff0c;在windows-system32-drivers-etc文件夹下找到hosts,用记事本打开 3&#xff0c;在下…