1public int[] dailyTemperatures(int[] temperatures) {
2 Stack<Integer> stack = new Stack<>();
3 int[] result = new int[temperatures.length];
4
5 for (int i = 0; i < temperatures.length; i++) {
6 while (!stack.isEmpty() && temperatures[i] > temperatures[stack.peek()]) {
7 int prevIndex = stack.pop();
8 result[prevIndex] = i - prevIndex;
9 }
10
11 stack.push(i);
12 }
13
14 return result;
15}