整型数组处理算法(十二)请实现一个函数:最长顺子。[风林火山]

博客内容介绍了如何使用C++编程实现找出输入整型数组中的最长连续子序列,例如输入[1,5,2,3,4,4,5,9,6,7,2,3,3,4],输出为[2,2,3,3,4,4,5,5]。实现代码已给出,并附带原创链接。" 111877638,7243278,理解OCI镜像规范:从Docker到云原生,"['容器技术', '云原生', 'Docker', 'oci', '镜像']
摘要由CSDN通过智能技术生成
请实现一个函数:最长顺子;输入很多个整数(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() >
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值