码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode] 78. 子集

时间:2018-07-30 14:46:54      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:remove   length   htm   void   com   class   array   bin   vat   

78. 子集

77. 组合几乎一样,我们只需将代码稍微改一下即可:

  1. k是需要变动的了,从1~n
  2. 取数时取nums[i-1]
class Solution {

    private void dfs(int n, int k, int last, int[] nums, List<Integer> cur, List<List<Integer>> ans) {
        if (k == 0) {
            ans.add(new ArrayList<>(cur));
            return;
        }
        for (Integer i = last + 1; i <= n; i++) {
            cur.add(nums[i - 1]);
            dfs(n, k - 1, i, nums, cur, ans);
            cur.remove(((Integer) nums[i - 1]));
        }
    }

    public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> ans = new ArrayList<>();

        List<Integer> cur = new ArrayList<>();

        for (int k = 0; k <= nums.length; k++) {
            dfs(nums.length, k, 0, nums, cur, ans);
        }

        return ans;
    }
}

[leetcode] 78. 子集

标签:remove   length   htm   void   com   class   array   bin   vat   

原文地址:https://www.cnblogs.com/acbingo/p/9390102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!