histogram.java
来自「Ulm大学2003-2004年竞赛题」· Java 代码 · 共 47 行
JAVA
47 行
// Problem Histogram// Algorithm Stack// Runtime O(n)// Author Walter Guttmann// Date 19.06.2003import java.io.*;public class histogram{ static long[] h = new long[1<<18]; static int[] rS = new int[1<<18]; static int[] lS = new int[1<<18]; public static void main(String[] arg) throws Exception { StreamTokenizer st = new StreamTokenizer(new BufferedReader(new FileReader("histogram.in"))); while (true) { st.nextToken(); int n = (int) st.nval; if (n == 0) break; for (int i=0 ; i<n ; i++) { st.nextToken(); h[i] = (long) st.nval; } h[n] = 0; long max_area = 0; int sp = 0; for (int i=0 ; i<=n ; i++) { lS[sp] = i; while (sp > 0 && h[rS[sp-1]] > h[i]) { --sp; max_area = Math.max(max_area, (i-lS[sp])*h[rS[sp]]); } rS[sp] = i; ++sp; } System.out.println(max_area); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?