42. Trapping Rain Water
来源:互联网 发布:英语作文翻译软件 编辑:程序博客网 时间:2024/06/05 15:38
/*Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.For example, Given [0,1,0,2,1,0,1,3,2,1,2,1], return 6.思路: 通过累积求总和;从左右两边开始遍历,标记遍历过程中的左右两边的最大值,maxL,maxR,遍历的过程中保持两侧的最大高度;左右位置进行比较,然后判断是进行左边或右边操作(操作高度小的);若果是左边操作,则左侧值height[left]与maxL进行比较然后进行更新maxL的值或sum值;右侧同理.*/#include <stdio.h>#include <iostream>#include <string>#include <sstream>#include <vector>#include <algorithm>using namespace std;class Solution {public: int trap(vector<int>& height) { int left=0,right=height.size()-1;int sum=0,maxL=0,maxR=0;while(left<right){if(height[left]<=height[right]){if(height[left]>=maxL) maxL=height[left];else sum+=maxL-height[left];left++;}else{if(height[right]>=maxR) maxR=height[right];else sum+=maxR-height[right];right--;}}return sum; }};int main(){ Solution mys;vector<int> candidates;//[0,1,0,2,1,0,1,3,2,1,2,1]candidates.push_back(0);candidates.push_back(1);candidates.push_back(0);candidates.push_back(2);candidates.push_back(1);candidates.push_back(0);candidates.push_back(1);candidates.push_back(3);candidates.push_back(2);candidates.push_back(1);candidates.push_back(2);candidates.push_back(1);int res=mys.trap(candidates);cout<<res<<endl; return 0;}
阅读全文
0 0
- 42.Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- 42. Trapping Rain Water
- go语言使用.yaml文件
- 深入理解HTTP幂等性
- Handler
- C语言(Head First C)-5_1:使用多个源文件:数据类型和使用头文件声明函数
- Android Native层异步消息处理框架
- 42. Trapping Rain Water
- 5个Android开发中比较常见的内存泄漏问题及解决办法
- Digit Counting, ACN/ICPC DANANG 2007, UVa1225 数数字
- javax.el.PropertyNotFoundException: Property 'typeId' not found on type java.lang.String
- java 中负数取模
- RabbitMQ队列与消息的持久化
- springMVC学习笔记(一)-----springMVC原理
- MOOC清华《面向对象程序设计》第2章:初始化列表实验
- Java IO之File