标签:深度优先遍历 backtrack etc tor 节点 memset i++ 优先 sub
本题是回溯法的基本应用,深度优先遍历,使用递归实现。
class Solution { public: int x[10000]; vector<vector<int>> R; int n; //t当前查询的位置 void BackTrack(vector<int> nums, int t) { if (t >= n)//达到叶子节点 { vector<int> V; for (int i = 0; i < n; i++) { if (x[i] == 1) { V.push_back(nums[i]); } } R.push_back(V); return; } x[t] = 0; BackTrack(nums, t + 1); x[t] = 1; BackTrack(nums, t + 1); } vector<vector<int>> subsets(vector<int>& nums) { n = nums.size(); memset(x, 0, sizeof(x)); BackTrack(nums, 0); return R; } };
标签:深度优先遍历 backtrack etc tor 节点 memset i++ 优先 sub
原文地址:https://www.cnblogs.com/asenyang/p/9739199.html