zoukankan      html  css  js  c++  java
  • 回溯---子集

    子集

    78. Subsets (Medium)

    Input: nums = [1,2,3]
    Output:
    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]
    

    题目描述:

      给定一个集合,返回其所有的不重复子集。

    思路分析:

      求子集,求排列问题,一般使用回溯的思想解决。

    代码:

    public class Solution{
        public List<List<Integer>>subsets(int []nums){
        List<List<Integer>>res=new ArrayList<>();
        List<Integer>list=new ArrayList<>();
        if(nums==null||nums.length==0)
            return res;
        for(int size=0;size<=nums.length;size++){
            backtracking(0,size,nums,res,list);//子集的长度
        }
        return res;
    }
    public void backtracking(int start,int size,int[]nums,List<List<Integer>>res,List<Integer>list){
        if(list.size()==size){
            res.add(new ArrayList<>(list));
            return; 
        }
        for(int i=start;i<nums.length;i++){
            list.add(nums[i]);
            backtracking(i+1,size,nums,res,list);
            list.remove(list.size()-1);
        }
    }
    }
    
  • 相关阅读:
    selenium登录csdn,urllib抓取数据
    selenium登录12306,requests抓取数据
    加一
    最后一个单词的长度
    最大子序和
    搜索插入位置
    实现strStr()
    二分查找
    内存对齐
    is_pod类型
  • 原文地址:https://www.cnblogs.com/yjxyy/p/11114153.html
Copyright © 2011-2022 走看看