[Leetcode]Combinations

    xiaoxiao2021-12-14  23

    最近学习暴力枚举法的相关知识,首先学习的是增量构造法,该方法的精髓在于首先获取原始资料的特征,是否重复,重复后各个数字出现的次数等,然后再按照一定的构造方法去进行深度搜索,其实也就是在决定每一个数据是否出现在所构成的排列中~

    收敛条件是达到了排列所需的个数(所求排列长度固定的情况) 或者所有的元素都已经进行了排列组合的筛选。

    class Solution { public: vector<vector<int>> combine(int n, int k) { vector<vector<int> > result; vector<int> path; dfs(n,k,1,path,result); return result; } private: void dfs(int n, int k, int start,vector<int> &path, vector<vector<int>> &result){ if(path.size() == k){ result.push_back(path); } for(int i = start; i <=n; ++i){ path.push_back(i); dfs(n,k, i+1, path,result); path.pop_back(); } } };
    转载请注明原文地址: https://ju.6miu.com/read-962895.html

    最新回复(0)