leetcode Trapping Rain Water
2015-06-13 10:24
417 查看
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
每个点是否被水漫过,取决于其前面是否存在高度大于它当前高度的点并且其后也存在高度大于当前高度的点,因此我们可以首先预处理处1->i点中高度最大的点和i->n点中高度最大的点,然后用于最终的ans计算。
For example,
Given
[0,1,0,2,1,0,1,3,2,1,2,1], return
6.
每个点是否被水漫过,取决于其前面是否存在高度大于它当前高度的点并且其后也存在高度大于当前高度的点,因此我们可以首先预处理处1->i点中高度最大的点和i->n点中高度最大的点,然后用于最终的ans计算。
class Solution { public: int trap(vector<int>& height) { int ans = 0; int size = height.size(); if(size <= 1) return 0; vector<int> v1(size), v2(size); v1[0] = height[0]; for(int i = 1; i < size; ++i) { v1[i] = max(v1[i-1], height[i]); } v2[size-1] = height[size-1]; for(int i = size - 2; i >= 0; --i) { v2[i] = max(v2[i+1], height[i]); } for(int i = 0; i < size; ++i) { int h = min(v1[i], v2[i]); if(height[i] < h) { ans += h - height[i]; } } return ans; } };
相关文章推荐
- cocos2d-x 3.6版loading加载资源
- 如何发布打包并发布自己的Android应用(APP)
- android 通过组件属性动态创建控件并设置布局
- 【Android Net】Volley实现(multipart/form-data)Post请求
- Android 判断GPS是否开启和强制帮用户打开GPS
- Android: 解决SVN更新项目后报错
- iphone开发之解决viewWillAppear失效
- android 多线程访问整数问题,请使用AtomicInteger
- android string.xml 特殊字符
- Android自定义控件-仿淘宝ios客户端天猫商品详情界面动效
- iOS 音乐类App必备功能:后台播放、锁屏封面、远程播放控制
- Android string.xml 特殊字符
- android studio 遇到的坑
- Android 屏幕旋转生命周期以及处理方法
- 6-11~6-13Android遇到Bug
- android webview js alert对话框 不能弹出 解决办法
- Android listview的适配器以及各种监听、效率的提升
- android 获取 版本号 和 手机的 部分信息
- Android 生成keystore,两种方式(转载)
- Android 生成keystore,两种方式(转载)