C++ 贪心算法 摇摆序列
一个整数序列,如果两个相邻元素的差恰好正负(负正)交替出现,则该序列被称为摇摆序列。一个小于2个元素的序列直接为摇摆序列。
#include<vector>
class Solution
{public:Solution(){}~Solution(){}int wiggleMaxLength(std::vector<int>& nums){if (nums.size()<2){return nums.size();}static const int BEGIN = 0;static const int UP = 1;static const int DOWN = 2;int STATE = BEGIN;int max_length = 1;for (unsigned int i = 1; i < nums.size(); i++){switch (STATE){case BEGIN:if (nums[i-1]<nums[i]){STATE = UP;max_length++;}else if (nums[i-1]>nums[i]){STATE = DOWN;max_length++;}break;case UP:if (nums[i - 1] > nums[i]){STATE = DOWN;max_length++;}break;case DOWN:if (nums[i-1]<nums[i]){STATE = UP;max_length++;}break;}}return max_length;}
};
int main()
{std::vector<int> nums;nums.push_back(1);nums.push_back(17);nums.push_back(5);nums.push_back(10);nums.push_back(13);nums.push_back(15);nums.push_back(10);nums.push_back(15);nums.push_back(16);nums.push_back(8);Solution solve;printf("%d\n", solve.wiggleMaxLength(nums));return 0;
}
运行结果:
7
C++ 贪心算法 摇摆序列相关推荐
- 利用python实现贪心算法-----摇摆序列
今天看到了这个贪心算法的摇摆序列,确实挺难的,自己就没有按照老师所用到的c语言代码编写,并且用了自己所能够理解的方式进行编写代码,代码实现起来有点多余,但是最终还是实现了,大家可以自己进行优化,这个是 ...
- 贪心:Wiggle Subsequence 摇摆序列
一个整数序列,如果两个相邻元素的差恰好正负(负正)交替出现,则该序列被称为 摇摆序列.一个小于2个元素的序列直接为摇摆序列.给一个随机序列,求这个序列满足摇摆序列定义的最长子序列的长度: 输入[1,1 ...
- c++ 摇摆序列 (贪心+状态自动机)
一个整数序列,如果相邻两个元素差是正负交替,则该序列为摇摆序列, 小于2个元素并且不相等,序列直接是摇摆序列 如 序列[1,7,4,9,2,5] 相邻元素差(6,-3,5,-7,3),是摇摆序列 序列 ...
- 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划
文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...
- 贪心算法求解一个序列中出现次数最多的元素问题
贪心算法求解一个序列中出现次数最多的元素问题 题目: 指定n个正整数,编写一个实验程序找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入描述:输入的第1行只有一个正整数n(1 ...
- 贪心---leetcode-376摆动序列
题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动 ...
- 贪心算法的python实现
贪心算法 贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略 ...
- LeetCode376 摇摆序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...
- 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题
packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...
最新文章
- 《将要淘汰的八种人》读后感
- git的一些常用命令
- D3.js(v3)+react 制作 一个带坐标与比例尺的散点图 (V3版本)
- JSONP的诞生、原理及应用实例
- 中世纪判断女巫的方法总结
- 加密托管机构Komainu与英国当局合作存储没收的加密货币
- L1-033__040
- 想问一下系统数据库工程师自学能过吗?
- ipsan设备挂载及模仿iscsi服务端进行挂载
- 微信小程序项目实例——投骰子
- 24种设计模式-单例模式-懒汉模式详解
- Python穷举法连接WiFi
- 手把手教你Markdown语法
- python import失败_解决python有时候import不了当前的包问题
- 计算机文档打不开是什么原因,文档打不开电脑我的文档Word突然打不开了,是怎会是啊?其他还都 爱问知识人...
- Wifi4更换Wifi6路由器的使用体验
- TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
- 【CTSC2016】时空旅行
- C# CSV文件读写
- 为什么精英这么用脑不会累
热门文章
- 学习豆瓣电台总结(一)
- 软件开发测试男友花束,心理测试:4款花束,你最喜欢哪款?测出你最近最需要什么...
- UE4 3ds Max 模型多维子材质
- php实现通讯录按字母分组,通讯录首字母检索功能实现
- 《反恐特警组》(S.W.A.T.)影片介绍
- 三国群英传霸业之王服务器维护,《三国群英传:霸王之业》1月7日维护更新公告...
- 视频眼镜中微显示器技术:LCD、LCoS、OLED和MEMS
- 基于java的学生宿舍公寓管理系统
- 计算机网口百兆改千兆,家里是千兆网,但是网口是百兆怎么办?
- LTE FDD PSS/SSS/MIB时频资源位置