[twitter] 墙之间的水坑能够装多少水

简介: “在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]” “假如开始下雨了,那么墙之间的水坑能够装多少水呢?” 解决思路: 1 初始化左指针为元素0的值,初始化右指针为元素size-1的值。 2 如果(左指针找到的左指针以左的最大值)小于(右指针找到右指针以右的最大值),将左指针向右移


“在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”

“假如开始下雨了,那么墙之间的水坑能够装多少水呢?”

解决思路:

1 初始化左指针为元素0的值,初始化右指针为元素size-1的值。

2 如果(左指针找到的左指针以左的最大值)小于(右指针找到右指针以右的最大值),将左指针向右移动一位。否则右指针向左移动一位。重复过程直到两个指针相遇。

实现代码:

#include <iostream>
using namespace std;
int Calc(int[], int);
int main()
{
	int testcase_1[] = {2,5,1,2,3,4,7,7,6};
	int testcase_2[] = {2,5,1,3,1,2,1,7,7,6};
	int testcase_3[] = {6,1,4,6,7,5,1,6,4};
	int testcase_4[] = {1,2,4,6,7,8,7,6,4};
	cout<<Calc(testcase_1,9)<<endl;
	cout<<Calc(testcase_2,10)<<endl;
	cout<<Calc(testcase_3,9)<<endl;
	cout<<Calc(testcase_4,9)<<endl;
}

int Calc(int a[], int size)
{
	int left = 0;
	int right = size - 1;
	int max_left = a[left];
	int max_right = a[right];
	int sum = 0;
	while(left < right)
	{
		if (a[left] < a[right])
		{
			left++;
			if (a[left] > max_left)
			{
				max_left = a[left];
			}
			else
			{
				sum += max_left - a[left];
			}
		}
		else
		{
			right--;
			if (a[right] > max_right)
			{
				max_right = a[right];
			}
			else
			{
				sum += max_right - a[right];
			}
		}
	}
	
	return sum;
}
输出结果:

10

17

13

0

目录
相关文章
|
定位技术 图形学
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
|
12月前
|
人工智能 算法 固态存储
这才是模块化电脑该有的样子:一人打造的超迷你计算机,震动了整个极客圈
这才是模块化电脑该有的样子:一人打造的超迷你计算机,震动了整个极客圈
109 0
|
算法 安全 C++
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移
221 0
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移
|
机器学习/深度学习 数据采集 算法
谷歌Up主自制秃头生成器张东升躺枪,而这款生发GAN让你发际线前进一公里!
最近,国产悬疑剧《隐秘的角落》火爆全网,张东升的秃头形象深入人心,B站up主利用StyleGAN自制了一款秃头生成器,只需几行代码就能完成你的秃头梦想,但是如果你想摆脱中年秃顶的危机,GAN也可以做到!
164 0
谷歌Up主自制秃头生成器张东升躺枪,而这款生发GAN让你发际线前进一公里!
|
开发者
这只机器章鱼不仅全身软乎乎的,还能自己动
哈佛大学的研究人员又有了一项新发明,值得注意的是,这项新发明源自大部分人平时就很害怕的一种生物,这项新发明就是:机器章鱼。
200 0
这只机器章鱼不仅全身软乎乎的,还能自己动
|
定位技术
女博士用3D打印“卧底”海龟蛋,装GPS骗过偷猎者,还揭发了137公里的非法贸易链
女博士用3D打印“卧底”海龟蛋,装GPS骗过偷猎者,还揭发了137公里的非法贸易链
|
安全 区块链 数据安全/隐私保护
详解:易到用车如何被黑客“开”走了车
易到用车“车祸现场”。
1205 0
火星漫游车着陆点最终确定,将于2021年于奥克夏平原开启探索之旅
奥克夏平原,是一个在过去很有可能拥有大片水域的区域,或许可以帮助科学家找到火星生命的蛛丝马迹。
373 0