Я думал о способе решения проблемы подмножеств (https://leetcode.com/problems/subsets/) с использованием рекурсивной DFS. Но я не могу придумать, как решить ее с помощью итеративной DFS. Может ли кто-нибудь помочь?
Моя рекурсивная DFSрешение:
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> res;
vector<int> cur;
helper(nums, 0, cur, res);
return res;
}
void helper(vector<int>& nums, int start, vector<int>& cur, vector<vector<int>>& res){
res.push_back(cur);
if(start>=nums.size()) return;
for(int i=start; i<nums.size();i++){
cur.push_back(nums[i]);
helper(nums, i+1, cur, res);
cur.pop_back();
}
}
};