Golang:
思路:栈结构可以很好的解决这个问题,用栈来记录一个递增的序列,栈内的元素为对应的元素下标即可。
代码如下:
func dailyTemperatures(T []int) []int {
res:=make([]int,len(T))
var stack []int
i:=len(T)-1
for i>=0{
if len(stack)==0{
stack=append(stack,i)
}else{
for true{
if len(stack)!=0&&T[i]>=T[stack[len(stack)-1]] {
stack=stack[:len(stack)-1]
}else{
if len(stack)!=0 {
res[i]=stack[len(stack)-1]-i
}
stack=append(stack,i)
break
}
}
}
i--
}
return res
}
有疑问加站长微信联系(非本文作者)