力扣(LeetCode)376. 摆动序列(2023.01.09)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。
例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。
相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。
子序列 可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。
给你一个整数数组 nums ,返回 nums 中作为 摆动序列 的 最长子序列的长度 。
示例 1:
输入:nums = [1,7,4,9,2,5]
输出:6
解释:整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3) 。
示例 2:
输入:nums = [1,17,5,10,13,15,10,5,16,8]
输出:7
解释:这个序列包含几个长度为 7 摆动序列。
其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8) 。
示例 3:
输入:nums = [1,2,3,4,5,6,7,8,9]
输出:2
提示:
1 <= nums.length <= 1000
0 <= nums[i] <= 1000
进阶:
你能否用 O(n) 时间复杂度完成此题?
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/wiggle-subsequence
方法一:贪心
C++提交内容:
class Solution {public:int wiggleMaxLength(vector<int>& nums) {int n = nums.size();if (n < 2) {return n;}int prevdiff = nums[1] - nums[0];int ret = prevdiff != 0 ? 2 : 1;for (int i = 2; i < n; i++) {int diff = nums[i] - nums[i - 1];if ((diff > 0 && prevdiff <= 0) || (diff < 0 && prevdiff >= 0)) {ret++;prevdiff = diff;}}return ret;}
};
力扣(LeetCode)376. 摆动序列(2023.01.09)相关推荐
- leetcode - 376. 摆动序列
376. 摆动序列 -------------------------------------------- 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在 ...
- LeetCode 376. 摆动序列 中等难度
376. 摆动序列 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如: [1,7,4,9 ...
- LeetCode 376. 摆动序列(贪心 动态规划)
文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...
- leetcode 376. 摆动序列 思考分析
目录 题目 思路分析 代码 总结 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1 ...
- leetcode 376. 摆动序列(dp)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...
- [leetcode]376. 摆动序列
原文:https://leetcode-cn.com/problems/wiggle-subsequence/solution/bai-dong-xu-lie-by-leetcode/ 给定一个整数序 ...
- Leetcode 376. 摆动序列 解题思路及C++实现
解题思路: 使用贪心算法的思想. 在例子 [1,17,5,10,13,15,10,5,16,8]中,[1, 17].[17, 5]这前面的两个序列就直接都选择了,没有问题,对于后面[5, 10, 13 ...
- 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划
文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...
- 【LeetCode】376. 摆动序列(图解)
376. 摆动序列 一.问题 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4, ...
- 【LeetCode每日一题】——376.摆动序列
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[题目进阶] 九[时间频度] 十[代码实现] 十一[提交结果] 一[题目类别 ...
最新文章
- 【PAT】1007. 素数对猜想 (20)
- lLinux 下 Stress 压力测试工具
- docker 部署springboot容器日志处理
- 【PHP】伪静态 - 1. 使用正则表达式实现
- 刷新table数据_关于数据透视表的刷新功能最值得了解的几个操作
- 基于dde-top-panel+tint2+plank+conky的Deepin(深度)桌面美化
- ceb怎么转换成word_win8.1系统将ceb文件格式转换成word的方法
- Android文字图像识别并翻译的简单实现
- VS2022编译librtmp制作rtmp.lib用于安装windows版本的python-librtmp 0.3.0
- 用userAgent判断手机类型
- 断言(C++大师Andrei Alexandrescu的文章)
- Android内存泄漏总结,成功拿下大厂offer
- Python自动抢红包,从此再也不会错过微信红包了!
- 电脑删除文件找不到该项目怎么解决
- JavaWeb-云日志
- AESECB加密算法 C 语言代码实现
- 单点登录 ( 踢人模式 )
- 让 Windows XP 不用输入密码自动登录
- turtle的函数及使用
- html 醒目的样式,创意醒目门牌设计欣赏
热门文章
- 如何使用ChatGPT辅助AI绘画?
- mac下连接夜神模拟器
- html导出 word文档教程
- N4,NVP6324,NVP6124I,NVP6158C,四路RX区别
- Chemex资产管理运维平台 v3.0.8
- 利用flask解析海康摄像头视频
- 记录一下新写的软件框架(Clover)
- 【中国科学院大学】考研初试复试资料分享
- 安装lightgbm报错Filelt ornoiEtnw Cuild nt find moble ‘Try usi ng the fil. pth with constowctor synta.
- 上例题!!!计算机网络之奇奇怪怪的IP练习题,含IP寻址、IP组网练习!!!!!