package com.daily.daily20210202;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
public class dailyTemperatures {
public int[] dailyTemperatures(int[] temperatures){
int[] res = new int[temperatures.length];
Map<Integer,Integer> map = new HashMap<>();
for (int i = 0; i <temperatures.length ; i++) {
int cnt =0;
int cur = temperatures[i];
map.put(i,0);
for (int j = i+1; j <temperatures.length ; j++) {
int curj = temperatures[j];
cnt++;
if (curj > cur){
map.put(i,map.getOrDefault(i,0)+cnt);
break;
}
}
}
map.forEach((key,value)->{
res[key] = value;
});
return res;
}
public int[] dailyTemperatures2(int[] temperatures){
int n = temperatures.length;
int[] res = new int[n];
Stack<Integer> stack = new Stack<>();
for (int i = 0; i <n ; i++) {
while (!stack.isEmpty() && temperatures[i] > temperatures[stack.peek()]){
int index = stack.pop();
res[index] = i - index;
}
stack.push(i);
}
return res;
}
}