本文主要是介绍整型数组处理算法(十二)请实现一个函数:最长顺子。[风林火山],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
请实现一个函数:最长顺子;输入很多个整数(1<=数值<=13),返回其中可能组成的最长的一个顺子(顺子中数的个数代表顺的长度); 其中数字1也可以代表14;
顺子包括单顺\双顺\3顺;
单顺的定义是连续5个及以上连续的数,比如1,2,3,4,5、3,4,5,6,7,8和10,11,12,13,1等;
双顺的定义是连续3个及以上连续的对(对:两个相同的数被称为对),
比如1,1,2,2,3,3、4,4,5,5,6,6,7,7和11,11,12,12,13,13,1,1等;
3顺的定义是连续2个及以上连续的3张(3张:3个相同的数被称为3张),
比如1,1,1,2,2,2、3,3,3,4,4,4,5,5,5,6,6,6和13,13,13,1,1,1等等;
比如:输入数组[1,5,2,3,4,4,5,9,6,7,2,3,3,4], 输出数组[2,2,3,3,4,4,5,5]
实现代码如下:
int putList(int k, map<int, map<int, int>* >& listData, map<int, int>* mapData)
{ int nFlag =0;if (0 == k && mapData->size() >= 5) { nFlag =1;//listData.put(mapData.size(), mapData); listData.insert(pair <int, map<int, int>* >( mapData->size(), mapData));} if (1 == k && mapData->size() >= 3) { nFlag =1;//listData.put(2 * mapData.size(), mapData); listData.insert(pair <int, map<int, int>* >(2* mapData->size(), mapData));} if (2 == k && mapData->size() >
这篇关于整型数组处理算法(十二)请实现一个函数:最长顺子。[风林火山]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!