mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
@ -217,47 +217,46 @@ Go:
|
|||||||
> 暴力法
|
> 暴力法
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func dailyTemperatures(temperatures []int) []int {
|
func dailyTemperatures(t []int) []int {
|
||||||
length:=len(temperatures)
|
var res []int
|
||||||
res:=make([]int,length)
|
for i := 0; i < len(t)-1; i++ {
|
||||||
for i:=0;i<length;i++{
|
|
||||||
j := i + 1
|
j := i + 1
|
||||||
if i==length-1{
|
for ; j < len(t); j++ {
|
||||||
res[i]=0
|
// 如果之后出现更高,说明找到了
|
||||||
}
|
if t[j] > t[i] {
|
||||||
for j<length&&temperatures[i]>=temperatures[j]{//大于等于
|
res = append(res, j-i)
|
||||||
j++
|
break
|
||||||
}
|
|
||||||
if j<length&&temperatures[i]<temperatures[j]{
|
|
||||||
res[i]=j-i
|
|
||||||
}
|
|
||||||
if j==length{
|
|
||||||
res[i]=0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return res
|
// 找完了都没找到
|
||||||
|
if j == len(t) {
|
||||||
|
res = append(res, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 最后一个肯定是 0
|
||||||
|
return append(res, 0)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> 单调栈法
|
> 单调栈法
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func dailyTemperatures(temperatures []int) []int {
|
// 单调递减栈
|
||||||
length:=len(temperatures)
|
func dailyTemperatures(num []int) []int {
|
||||||
res:=make([]int,length)
|
ans := make([]int, len(num))
|
||||||
stack := []int{}
|
stack := []int{}
|
||||||
for i:=0;i<length;i++{
|
for i, v := range num {
|
||||||
//如果当前栈中存在元素,新来的元素大于栈顶的元素,则计算差值并弹出栈顶元素
|
// 栈不空,且当前遍历元素 v 破坏了栈的单调性
|
||||||
for len(stack)>0&&temperatures[i]>temperatures[stack[len(stack)-1]]{
|
for len(stack) != 0 && v > num[stack[len(stack)-1]] {
|
||||||
res[stack[len(stack)-1]]=i-stack[len(stack)-1]//存放结果集
|
// pop
|
||||||
stack=stack[:len(stack)-1]//删除stack[len(stack)-1]的元素
|
top := stack[len(stack)-1]
|
||||||
|
stack = stack[:len(stack)-1]
|
||||||
|
|
||||||
|
ans[top] = i - top
|
||||||
}
|
}
|
||||||
//如果栈顶元素大于等于新来的元素,则加入到栈中。当栈内元素个数为0时,直接入栈
|
|
||||||
if len(stack)==0||temperatures[i]<=temperatures[stack[len(stack)-1]]{
|
|
||||||
stack = append(stack, i)
|
stack = append(stack, i)
|
||||||
}
|
}
|
||||||
}
|
return ans
|
||||||
return res
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user