u
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package top100liked
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// https://leetcode.cn/problems/daily-temperatures/?envType=study-plan-v2&envId=top-100-liked
|
||||
|
||||
func dailyTemperatures(temperatures []int) []int {
|
||||
res := make([]int, len(temperatures))
|
||||
stack := make([]int, 0, len(temperatures))
|
||||
|
||||
for i := len(temperatures) - 1; i >= 0; i-- {
|
||||
for len(stack) > 0 && temperatures[stack[len(stack)-1]] <= temperatures[i] {
|
||||
stack = stack[:len(stack)-1]
|
||||
}
|
||||
if len(stack) > 0 {
|
||||
res[i] = stack[len(stack)-1] - i
|
||||
}
|
||||
stack = append(stack, i)
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
// func dailyTemperatures(temperatures []int) []int {
|
||||
// type item struct {
|
||||
// Idx int
|
||||
// Temp int
|
||||
// }
|
||||
// stack := []item{}
|
||||
// res := make([]int, len(temperatures))
|
||||
// for i := len(temperatures) - 1; i >= 0; i-- {
|
||||
// cur := temperatures[i]
|
||||
// if len(stack) == 0 {
|
||||
// stack = append(stack, item{i, cur})
|
||||
// res[i] = 0
|
||||
// } else {
|
||||
// for {
|
||||
// if len(stack) == 0 {
|
||||
// stack = append(stack, item{i, cur})
|
||||
// res[i] = 0
|
||||
// break
|
||||
// }
|
||||
// top := stack[len(stack)-1]
|
||||
// if cur < top.Temp {
|
||||
// res[i] = top.Idx - i
|
||||
// stack = append(stack, item{i, cur})
|
||||
// break
|
||||
// } else {
|
||||
// stack = stack[:len(stack)-1] // pop
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return res
|
||||
// }
|
||||
|
||||
func Test(t *testing.T) {
|
||||
fmt.Printf("%+v", dailyTemperatures([]int{73, 74, 75, 71, 69, 72, 76, 73}))
|
||||
}
|
||||
Reference in New Issue
Block a user