leetcode/src/s0078_subsets.cpp

23 lines
597 B
C++

#include "s0078_subsets.hpp"
void subsetsDFS(vector<int> &subset, vector<vector<int>> &result, vector<int> &nums, int startIndex) {
int size = nums.size();
// 结束条件
if (startIndex == size) return;
for (int i = startIndex; i < size; ++i) {
subset.push_back(nums[i]);
result.push_back(subset);
subsetsDFS(subset, result, nums, i + 1);
subset.pop_back();
}
}
vector<vector<int>> S0078::subsets(vector<int>& nums) {
vector<int> subset{};
vector<vector<int>> result{};
subsetsDFS(subset, result, nums, 0);
result.push_back(vector<int>{});
return result;
}