【数组】78. 子集
题目:

解答:
回溯方法:
1 class Solution { 2 public: 3 vector<vector<int>> res; 4 5 vector<vector<int>> subsets(vector<int>& nums) 6 { 7 // 记录走过的路径 8 vector<int> track; 9 backtrack(nums, 0, track); 10 return res; 11 } 12 13 void backtrack(vector<int>& nums, int start, vector<int>& track) 14 { 15 res.push_back(track); 16 // 注意 i 从 start 开始递增 17 for (int i = start; i < nums.size(); i++) 18 { 19 // 做选择 20 track.push_back(nums[i]); 21 // 回溯 22 backtrack(nums, i + 1, track); 23 // 撤销选择 24 track.pop_back(); 25 } 26 } 27 };

浙公网安备 33010602011771号