zoukankan      html  css  js  c++  java
  • 整型数组处理算法(十)请实现一个函数:凑14。[风林火山]

    请实现一个函数:凑14;
    输入很多个整数(1<=数值<=13),任意两个数相加等于14就可以从数组中删除这两个数, 
    求剩余数(按由小到大排列);比如:输入数组[9,1,9,7,5,13], 输出数组[7,9] 。

    实现代码如下:

    int* MakeAndDelete(const int *InputArray, int count, int& OutPutCount, int MakeValue)
    {
    	int* Temp = new int[MakeValue];//保存1~13出现的次数
    	
    	int nOutCount = 0;//剩余元素个数
    	
    	int i;
    	int j;
    	int k;
    	
    	
    	memset(Temp, 0, MakeValue*sizeof(int));
    	
    	//判断输入数字有效性,同时统计1~13出现的次数
    	for (i=0; i<count; i++)
    	{
    		if (InputArray[i]>=MakeValue || InputArray[i]<1)
    		{
    			OutPutCount = -1;
    			return NULL;//输入的数字不在1~13范围里
    		}
    		Temp[InputArray[i]]++;
    	}
    	
    	//对个数进行计算:剩余个数或为0,或为差值,同时统计剩余元素个数
    	for (i = 1; i < MakeValue / 2; i++) 
    	{  
    		if (Temp[i] > Temp[MakeValue - i]) 
    		{  
    			Temp[i] -= Temp[MakeValue - i];  
    			Temp[MakeValue - i] = 0;
    			
    			nOutCount += Temp[i];
    		} 
    		else 
    		{
    			Temp[MakeValue - i] -= Temp[i];
    			Temp[i] = 0;  
    			
    			nOutCount += Temp[MakeValue - i];
    		}  
    	}
    	
    	//如果是偶数,对2取余。
    	if (MakeValue % 2 == 0) 
    	{  
    		Temp[MakeValue / 2] = Temp[MakeValue / 2] % 2;  
    		nOutCount += Temp[MakeValue / 2];
    	}
    	
    	//剩余数不为0
    	if (nOutCount > 0)
    	{
    		k =0;
    		OutPutCount = nOutCount;
    		
    		int* OutPutArray = new int[nOutCount];
    		for (i= 1; i<MakeValue; i++)
    		{
    			if (Temp[i]>0)
    			{
    				for (j=0; j<Temp[i]; j++)
    				{
    					OutPutArray[k++] = i;
    				}
    			}
    		}
    		
    		return OutPutArray;
    	}
    	
    	OutPutCount = 0;
    	return NULL;
    		
    }
    


    有兴趣的朋友可以试试,仅提供参考。


    转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12586389



  • 相关阅读:
    第八篇 Flask中的蓝图
    第七篇 Flask实例化配置及Flask对象配置
    第六篇 Flask中的路由系统
    第五篇 Flask 中内置的 Session
    第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
    第三篇 Flask中的request
    守护进程与守护线程
    GIL(全局解释器锁)与互斥锁
    python 面向对象
    实现能计算类似1
  • 原文地址:https://www.cnblogs.com/riskyer/p/3362187.html
Copyright © 2011-2022 走看看