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));
        }
    
    }
  • 相关阅读:
    LVS DR实验!
    Memcached 与 Redis 区别
    LVS笔试题!
    并发编程拓展知识
    并发编程之协程
    并发编程之线程
    并发编程之多道技术
    粘包问题与socketserver实现并发
    套接字通信
    git的使用
  • 原文地址:https://www.cnblogs.com/null00/p/5075536.html
Copyright © 2011-2022 走看看