为什么很多人刷了几十道贪心题,还是不会「摆动序列」?一次彻底搞懂 LeetCode 376
为什么很多人刷了几十道贪心题,还是不会「摆动序列」?一次彻底搞懂 LeetCode 376作者:Echo_Wish在 LeetCode 众多算法题中,有一道题我觉得特别有意思,它没有复杂的数据结构,也没有高深的数学推导,却能很好地检验一个人到底有没有真正理解贪心算法。它就是——摆动序列(Wiggle Subsequence)。不少同学第一次做这道题的时候,脑子里想的都是:“是不是要动态规划?”于是状态设计、二维数组、各种转移方程一顿操作,代码写了几十行,最后虽然 AC 了,但总觉得哪里不太对劲。而真正理解这道题之后,你会发现:原来一道 Medium 难度的题,竟然可以几行代码解决。今天,我们就一起聊聊这道经典题目,希望你看完之后,不仅会做这一题,更能真正理解贪心算法到底在"贪"什么。什么叫摆动序列?先来看官方定义。如果一个序列中,相邻元素之间的差值:正、负、正、负……或者负、正、负、正……那么它就是一个摆动序列。例如: