首页 > 其他分享 >LeetCode 78. 子集(/)

LeetCode 78. 子集(/)

时间:2023-02-27 18:44:31浏览次数:35  
标签:cur nums int back dfs vector 子集 LeetCode 78

原题解

题目

约束

题解

解法一


class Solution {
public:
    vector<int> t;
    vector<vector<int>> ans;

    vector<vector<int>> subsets(vector<int>& nums) {
        int n = nums.size();
        for (int mask = 0; mask < (1 << n); ++mask) {
            t.clear();
            for (int i = 0; i < n; ++i) {
                if (mask & (1 << i)) {
                    t.push_back(nums[i]);
                }
            }
            ans.push_back(t);
        }
        return ans;
    }
};

解法二

vector<int> t;
void dfs(int cur, int n) {
    if (cur == n) {
        // 记录答案
        // ...
        return;
    }
    // 考虑选择当前位置
    t.push_back(cur);
    dfs(cur + 1, n, k);
    t.pop_back();
    // 考虑不选择当前位置
    dfs(cur + 1, n, k);
}


class Solution {
public:
    vector<int> t;
    vector<vector<int>> ans;

    void dfs(int cur, vector<int>& nums) {
        if (cur == nums.size()) {
            ans.push_back(t);
            return;
        }
        t.push_back(nums[cur]);
        dfs(cur + 1, nums);
        t.pop_back();
        dfs(cur + 1, nums);
    }

    vector<vector<int>> subsets(vector<int>& nums) {
        dfs(0, nums);
        return ans;
    }
};

标签:cur,nums,int,back,dfs,vector,子集,LeetCode,78
From: https://www.cnblogs.com/chuixulvcao/p/17161443.html

相关文章

  • #yyds干货盘点# LeetCode面试题:下一个排列
    1.简述:整数数组的一个排列 就是将其所有成员以序列或线性顺序排列。例如,arr=[1,2,3],以下这些都可以视作arr的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。整数数组的......
  • #yyds干货盘点# LeetCode面试题:最长有效括号
    1.简述:给你一个只包含'(' 和')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例1:输入:s="(()"输出:2解释:最长有效括号子串是"()"示例2:输入:s=")()())"......
  • #yyds干货盘点# LeetCode程序员面试金典:平分正方形
    题目:给定两个正方形及一个二维平面。请找出将这两个正方形分割成两半的一条直线。假设正方形顶边和底边与x轴平行。每个正方形的数据square包含3个数值,正方形的左下顶点坐......
  • #yyds干货盘点# LeetCode程序员面试金典:最佳直线
    题目:给定一个二维平面及平面上的N个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]。请找出一条直线,其通过的点的数目最多。设穿过最多点的直线所穿过的全部点编号从......
  • 【LeetCode】27. 移除元素
    移除指定元素时间复杂度O(n)空间复杂度O(1)classSolution{public:intremoveElement(vector<int>&nums,intval){intfast,low;for(f......
  • 【DFS】LeetCode 291. 单词规律 II
    题目链接291.单词规律II思路定义一个全局HashMap<Character,String>来存储映射关系,key为pattern的字符,value为str的子串。一开始,map中没有任何映射关系。......
  • P5788 【模板】单调栈
    P5788【模板】单调栈【模板】单调栈题目背景模板题,无背景。2019.12.12更新数据,放宽时限,现在不再卡常了。题目描述给出项数为n的整数数列a_{1...n}。定义函数......
  • leetcode 862. 和至少为 K 的最短子数组
    一个双端单调队列:如果新加入的数比队列尾的数小,那么队列尾的数就可以丢去,这是因为如果未来的一个数能和队列尾的数满足条件,那么也一定可以和新加入的数满足条件。另外,如果......
  • [LeetCode] 1333. Filter Restaurants by Vegan-Friendly, Price and Distance 餐厅过
    Giventhearray restaurants where restaurants[i]=[idi,ratingi,veganFriendlyi,pricei,distancei].Youhavetofiltertherestaurantsusingthreefilte......
  • 【DFS】LeetCode 52. N 皇后 II
    题目链接52.N皇后II思路与52.N皇后II一致代码classSolution{privateintresult;privateboolean[]mainDiag;privateboolean[]subDiag;......