LeetCode 42. Trapping Rain Water

旧城等待, 2023-06-04 04:57 128阅读 0赞

题目

1A
c++

O(n^2)

  1. class Solution {
  2. public:
  3. int trap(vector<int>& height) {
  4. int ans=0;
  5. for(int i=1;i<height.size();i++)
  6. {
  7. if(height[i]>height[i-1])
  8. {
  9. int pos=0;
  10. for(int j=i-2;j>=0;j--)
  11. {
  12. if(height[j+1]<height[j])
  13. {
  14. int h=min(height[j],height[i]);
  15. for(int k=j+1;k<=i-1;k++)
  16. {
  17. ans += h-height[k];
  18. height[k] += h-height[k];
  19. }
  20. if(height[i]<height[j])
  21. break;
  22. }
  23. }
  24. }
  25. }
  26. return ans;
  27. }
  28. };

O(n)

  1. class Solution {
  2. public:
  3. int left[100005];
  4. int right[100005];
  5. int trap(vector<int>& height) {
  6. int ans=0;
  7. if(height.size()==0)
  8. return ans;
  9. left[0] = height[0];
  10. for(int i=1;i<height.size();i++)
  11. {
  12. left[i] = max(left[i-1],height[i]);
  13. }
  14. right[height.size()-1] = height[height.size()-1];
  15. for(int j=height.size()-2;j>=0;j--)
  16. {
  17. right[j]=max(right[j+1],height[j]);
  18. }
  19. for(int i=0;i<height.size();i++)
  20. {
  21. ans += min(left[i],right[i]) - height[i];
  22. }
  23. return ans;
  24. }
  25. };

转载于:https://www.cnblogs.com/dacc123/p/11344908.html

发表评论

表情:
评论列表 (有 0 条评论,128人围观)

还没有评论,来说两句吧...

相关阅读