根据往后 n 天的天气预报,计算每一天需要等待几天才会出现一次更高的气温,如果往后都没有更高的气温,则用 0 补位。
例如往后三天的气温是 [1,2,3] , 则输出 [1,1,0]
数据范围:
,每天的温度会满足 ![0 \le dailyTemperatures[i] \le 1000 \](https://www.nowcoder.com/equation?tex=0%20%5Cle%20dailyTemperatures%5Bi%5D%20%5Cle%201000%20%20%5C)
[1,2,3]
[1,1,0]
[2,4,5,9,10,0,9]
[1,1,1,1,0,1,0]
[3,1,4]
[2,1,0]
package main
import _"fmt"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 每日温度
* @param dailyTemperatures int整型一维数组
* @return int整型一维数组
*/
func temperatures( dailyTemperatures []int ) []int {
n:=len(dailyTemperatures)
ans:=make([]int,n)
stk:=[]int{}
for i,x:=range dailyTemperatures{
for len(stk)>0&&dailyTemperatures[stk[len(stk)-1]]<x{
ans[stk[len(stk)-1]]=i-stk[len(stk)-1]
stk=stk[:len(stk)-1]
}
stk=append(stk,i)
}
return ans
}