zoukankan      html  css  js  c++  java
  • LeetCode

    题目:

    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!

    思路:

    1. 找到最高的点index

    2. 计算(0, index)和(index, n-1)之间各点的面积

    package area;
    
    public class TrappingRainWater {
    
        public int trap(int[] height) {
            int n;
            if (height == null || (n = height.length) == 0) return 0;
            int area = 0;
            int maxHeight = height[0];
            int maxHeightIndex = 0;
            for (int i = 1; i < n; ++i) {
                if (height[i] > maxHeight) {
                    maxHeight = height[i];
                    maxHeightIndex = i;
                }
            }
            
            int leftMax = height[0];
            for (int i = 1; i < maxHeightIndex; ++i) {
                if (height[i] > leftMax)
                    leftMax = height[i];
                area += (leftMax - height[i]);
            }
            
            int rightMax = height[n - 1];
            for (int i = n - 2; i > maxHeightIndex; --i) {
                if (height[i] > rightMax) 
                    rightMax = height[i];
                area += rightMax - height[i];
            }
            
            return area;
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[] height = { /*0,1,0,2,1,0,1,3,2,1,2,1*/ 5,2,1,2,1,5 };
            TrappingRainWater t = new TrappingRainWater();
            System.out.println(t.trap(height));
        }
    
    }
  • 相关阅读:
    个人阅读2
    代码复审
    PairProject 总结
    Pairproject 移山之道 阅读随笔和一些问题
    M1/M2个人总结
    团队项目个人总结
    个人阅读作业2
    代码互审
    《移山之道》读后感
    Individual Project
  • 原文地址:https://www.cnblogs.com/null00/p/5075536.html
Copyright © 2011-2022 走看看