美文网首页
90 lintcode k数和

90 lintcode k数和

作者: 小雨启明 | 来源:发表于2019-01-20 09:38 被阅读0次

    class Solution {

    public:

        /*

        * @param A: an integer array

        * @param k: a postive integer <= length(A)

        * @param target: an integer

        * @return: A list of lists of integer

        */

        vector<vector<int>> kSumII(vector<int> &A, int k, int target) {

            // write your code here

            vector<vector<int> >result;

            vector<int>temp;

            DFS(A,k,target,0,0,result,temp);

            return result;

           

        }

        void  DFS(vector<int> &A, int k, int target,int sum,int index,vector<vector<int> >&result,vector<int>&temp)

        {

            if(temp.size()==k&&sum==target)

            {

              result.push_back(temp);

              return ;

            }

            if(index==A.size()||sum>target)

            return;

            temp.push_back(A[index]);

            DFS(A,k,target,sum+A[index],index+1,result,temp);

            temp.pop_back();

            DFS(A,k,target,sum,index+1,result,temp);

           

        }

    temp.push_back()

    Temp.pop_back();

    必须配对使用而且与跟随语句的位置无关,这两个的使用可以保证,在退出当前的递归之后,不会对上一个的递归状态产生影响。

    相关文章

      网友评论

          本文标题:90 lintcode k数和

          本文链接:https://www.haomeiwen.com/subject/idxxjqtx.html