78. 子集

题目

78. 子集

题解

代码

import java.util.*;

public class code78 {

    public static List<List<Integer>> subsets(int[] nums) {
        // Arrays.sort(nums);
        List<List<Integer>> res = new ArrayList<List<Integer>>();
        List<Integer> list = new ArrayList<Integer>();
        dfs(res, list, 0, nums);
        return res;
    }

    public static void dfs(List<List<Integer>> res, List<Integer> list, int start, int nums[]) {
        res.add(new ArrayList<>(list));

        for (int i = start; i <= nums.length - 1; i++) {
            list.add(nums[i]);
            dfs(res, list, i + 1, nums);
            list.remove(list.size() - 1);
        }
    }

    public static void main(String[] args) {
        int nums[] = { 1, 2, 3 };
        List<List<Integer>> res = subsets(nums);
        System.out.println(res);
    }
}

参考

  1. 回溯算法——题解一
  2. 二进制位,逐个枚举,DFS 三种思路,9+ 种以上的写法——题解二
  3. 位运算——题解三
  4. 详细通俗的思路分析,多解法——题解四
  5. 回溯 + 位掩码(Python 代码、Java 代码)
全部评论

相关推荐

点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务