码迷,mamicode.com
首页 > 其他好文 > 详细

给定n个整数和一个整数C,问n个数中那几个数的和等于C。

时间:2015-07-02 17:10:25      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:

void function(vector<int> vecS,vector<int> vecD,vector< vector<int> > & vecGroup,int iSum)
{
    for(vector<int>::iterator itr = vecS.begin(); itr != vecS.end(); ++itr)
    {
        if(iSum - *itr == 0)
        {
            vecD.push_back(*itr);

            // 去掉重复组合 ----------------
            vector<int> vecTemp(vecD.begin(),vecD.end());
            sort(vecTemp.begin(),vecTemp.end());
        
            vector< vector<int> >::iterator iter = find(vecGroup.begin(),vecGroup.end(),vecTemp);
            if(iter == vecGroup.end())
            {
                vecGroup.push_back(vecTemp);
            }
            // 去掉重复组合 ----------------

            vecD.pop_back();
        }
        else
        {
            vecD.push_back(*itr);

            vector<int> vecTemp(vecS.begin(),vecS.end());
            vector<int>::iterator it = find(vecTemp.begin(),vecTemp.end(),*itr);
            vecTemp.erase(it);
            function(vecTemp,vecD,vecGroup,iSum - *itr);

            vecD.pop_back();
        }
    }
}

但是效率实在是太低了。。。。

 

给定n个整数和一个整数C,问n个数中那几个数的和等于C。

标签:

原文地址:http://www.cnblogs.com/LeavesSmallAnt/p/4616280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!