[LeetCode] 90. Subsets II

来源:互联网 发布:saas企业级软件服务 编辑:程序博客网 时间:2024/06/04 18:24

思路:
和之前很多的DFS问题一样, 与之前的subset I思路也相同, 就是加一个判断, 排除当前的数字和前一个是不是相同的情况即可.

void dfs(vector<vector<int>>& res, vector<int>& nums, vector<int>& set, int start) {    res.push_back(set);    for (int i = start; i < nums.size(); i++) {        if (i > start && nums[i] == nums[i - 1])            continue;        set.push_back(nums[i]);        dfs(res, nums, set, i + 1);        set.pop_back();    }}vector<vector<int>> subsetsWithDup(vector<int>& nums) {    vector<vector<int>> res;    vector<int> set;    sort(nums.begin(), nums.end());    dfs(res, nums, set, 0);    return res;}
0 0
原创粉丝点击