zoukankan      html  css  js  c++  java
  • leetcode Trapping Rain Water

    Trapping Rain Water

      Total Accepted: 2335  Total Submissions: 8464 My Submissions

     

    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.


    The above elevation map is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Thanks Marcos for contributing this image!

     

    Discuss


    Find the highest, then from the start to the highest, then the last to the highest..

    class Solution {
     public:
      int trap(int A[], int n) {
        if (n <= 2)
          return 0;
        int i, maxElevation = A[0], maxIndex = 0, h = 0, res = 0;
        for (i = 1; i < n; ++i)
          if (A[i] > maxElevation) {
            maxElevation = A[i];
            maxIndex = i;
          }
        for (i = 0; i <= maxIndex - 1; ++i) 
          if (A[i] >= h)
            h = A[i];
          else
            res += (h - A[i]);
        
        h = 0;
        for (i = n - 1; i >= maxIndex + 1; --i) 
          if (A[i] >= h)
            h = A[i];
          else
            res += (h - A[i]);
        return res;
      }
    };


  • 相关阅读:
    ci上传图片
    Mac下使用svn命令
    linux 下svn忽略文件
    thinkphp5 隐藏入口和支持pathinfo
    ci tp重定向
    php命名空间
    thinkphp5学习记录一
    Mac下安装homebrew
    使用iTerm2快捷连接SSH
    摄影基础
  • 原文地址:https://www.cnblogs.com/riasky/p/3455550.html
Copyright © 2011-2022 走看看