两指针(7)
来源:互联网 发布:淘宝直播的运营怎么做 编辑:程序博客网 时间:2024/06/08 00:13
原题:
/** * Created by gouthamvidyapradhan on 08/03/2017. * 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. * <p> * For example, * Given [0,1,0,2,1,0,1,3,2,1,2,1], return 6. */
答案:
public class TrappingRainWater { /** * Main method * * @param args * @throws Exception */ public static void main(String[] args) throws Exception { int[] height = {0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1}; System.out.println(new TrappingRainWater().trap(height)); } private int trap(int[] height) { if (height.length == 0) return 0; int[] left = new int[height.length]; int[] right = new int[height.length]; int max = 0; left[0] = 0; right[height.length - 1] = 0; int total = 0; for (int i = 1, l = height.length; i < l; i++) { left[i] = Math.max(max, height[i - 1]); max = left[i]; } max = 0; for (int i = height.length - 2; i >= 0; i--) { right[i] = Math.max(max, height[i + 1]); max = right[i]; } for (int i = 0, l = height.length; i < l; i++) { int min = Math.min(left[i], right[i]); if (min > height[i]) { total += (min - height[i]); } } return total; }}
阅读全文
0 0
- 两指针(7)
- 两指针(1)
- 两指针(2)
- 两指针(3)
- 两指针(4)
- 两指针(5)
- 两指针(6)
- 比较两数大小(指针)
- 精致树叶鼠标指针(两款)
- 比较两数大小(指向函数的指针变量)
- 比较两数大小(指针函数版)
- 第十七周项目3-两种排序(指针做形参)
- 用指针比较两数的大小(2)
- 智能指针的两种实现(引用计数)
- 邻接表的两种实现(双向+非指针)
- 切分 字符串指针数组(如环境变量) 的两种方法, 数组下标 和 指针
- 指针、数组、字符串(二)两句话分清数组和指针
- 指针操作交换两数
- MongoDB:16-MongoDB-索引数组字段和索引子文档字段
- laoshidaima(用户管理商品)
- 排座位 要安排:3个A国人,3个B国人,3个C国人坐成一排。 要求不能使连续的3个人是同一个国籍。 求所有不同方案的总数?
- 两指针(6)
- 乐观锁和悲观锁的区别(最全面的分析)
- 两指针(7)
- 浅谈从源代码文件到二进制可执行文件的过程
- 寻找最大公因数(欧几里得算法)--C语言描述
- javase 面试常见错误2
- Astah Community安装教程
- [ Java学习 ] 正则表达式与模式匹配
- Oracle 之 SEQUENCE 简单应用
- Jay Kreps: 为什么write有时候在Linux里面耗时很久
- Spring AOP