本文主要是介绍【LeetCode】每日一题 2024_5_24 找出最具竞争力的子序列(栈,模拟,贪心),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- LeetCode?启动!!!
- 题目:找出最具竞争力的子序列
- 题目描述
- 代码与解题思路
- 每天进步一点点
LeetCode?启动!!!
题目:找出最具竞争力的子序列
题目链接:1673. 找出最具竞争力的子序列
题目描述
代码与解题思路
核心原理看注释,因为题目要求的是第一个子序列数最低的子序列,所以越靠前的数权重越大,因此可以贪心(就题论题)
只要保证越前面的数越小即可
func mostCompetitive(nums []int, k int) []int {st := []int{}for i, v := range nums {// 保证下一个子序列数 <= 当前子序列数(否则就有更优解,出栈)// 保证 nums 剩下的数足够 k 个for len(st) > 0 && st[len(st)-1] > v && len(nums)-i > k-len(st) {st = st[:len(st)-1]}if len(st) < k {st = append(st, v)}}return st
}
每天进步一点点
可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。
这篇关于【LeetCode】每日一题 2024_5_24 找出最具竞争力的子序列(栈,模拟,贪心)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!