1673. 找出最具竞争力的子序列

找出最具竞争力的子序列

解法一: 单调栈

go
1
2
3
4
5
6
7
8
9
10
11
12
13
func mostCompetitive(nums []int, k int) []int {
stack := []int{}
n := len(nums)
for i, num := range nums {
for len(stack) > 0 && stack[len(stack)-1] > num && (len(stack)-1+n-i) >= k {
stack = stack[:len(stack)-1]
}
if len(stack) < k {
stack = append(stack, num)
}
}
return stack
}
作者

wuhunyu

发布于

2024-05-24

更新于

2025-01-15

许可协议