建设手机网站的公司,自己做网站要会什么软件下载,安装wordpress+000,discuz修改网站标题https://leetcode.cn/problems/trapping-rain-water/description/?envTypestudy-plan-v2envIdtop-interview-150 对于一个可以构成“碗”的序列#xff0c;最后装满水的话应该和最短的一边齐平#xff0c;那么可以左右各遍历一次#xff0c;记录每个元素位置对应的最短…https://leetcode.cn/problems/trapping-rain-water/description/?envTypestudy-plan-v2envIdtop-interview-150 对于一个可以构成“碗”的序列最后装满水的话应该和最短的一边齐平那么可以左右各遍历一次记录每个元素位置对应的最短边高度再对比就可以得出左右哪边最短
class Solution {
public:int trap(vectorint height) {int n height.size();if (n 0) {return 0;}vectorint leftMax(n);leftMax[0] height[0];for (int i 1; i n; i) {leftMax[i] max(leftMax[i - 1], height[i]);}vectorint rightMax(n);rightMax[n - 1] height[n - 1];for (int i n - 2; i 0; --i) {rightMax[i] max(rightMax[i 1], height[i]);}int ans 0;for (int i 0; i n; i) {ans min(leftMax[i], rightMax[i]) - height[i];}return ans;}
};
总结对于一些左右对称的问题也就是将其对称翻转过来结果一样的问题或者说有时我们需要同时知道左右元素的信息才能得到答案的我们不可能只从一边遍历一次就得到答案应该左右各遍历一次才能同时得到左边的信息和右边的信息这样才能够可能得到答案 本文由博客一文多发平台 OpenWrite 发布