首页 > 其他 > 详细

42. 接雨水

时间:2020-04-08 17:44:17      阅读:58      评论:0      收藏:0      [点我收藏+]
 1 //自底向上层层叠加
 2 class Solution 
 3 {
 4 public:
 5     int trap(vector<int>& height) 
 6     {
 7         int res = 0;
 8         stack<int> stk;
 9 
10         for(int i = 0;i < height.size();i ++)
11         {
12             int last = 0;
13             while(stk.size() && height[stk.top()] <= height[i])
14             {
15                 int t = stk.top();
16                 stk.pop();
17 
18                 res += (i - t - 1) * (height[t] - last);
19                 cout << res << " ";
20                 last = height[t];
21             }
22 
23             if(stk.size())
24             {
25                 res += (i - stk.top() - 1) * (height[i] - last);
26             }
27             cout << res << " ";
28             stk.push(i);
29             cout << endl;
30         }
31         return res;
32     }
33 }; 

 

42. 接雨水

原文:https://www.cnblogs.com/yuhong1103/p/12660545.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!