import java.util.*;public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] d = new int[n]; for(int i=0; i<n; i++){ d[i] = in.nextInt(); } int[] ret = help(d); StringBuilder sb = new StringBuilder(); for(int i=0; i<ret.length; i++){ sb.append(ret[i]).append("\n"); } System.out.print(sb.toString()); } private static int[] help(int[] nums){ int[] ret = new int[nums.length]; Arrays.fill(ret, -1); Stack<Integer> s = new Stack<>(); for(int i=0; i<nums.length; i++){ while(!s.isEmpty() && nums[i] > nums[s.peek()]){ int top = s.pop(); ret[top] = i - top; } s.push(i); } return ret; }}原文:https://www.cnblogs.com/wen-/p/12713900.html