• [LeetCode] 78. Subsets Java


    题目:

    Given a set of distinct integers, nums, return all possible subsets.

    Note: The solution set must not contain duplicate subsets.

    For example,
    If nums = [1,2,3], a solution is:

    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    题意及分析:给出一个无重复值的集合,要求给出所有可能的子集。这道题直接用动态规划求解,因为每一次backtack的时候都有解,所以在每次backtrack的时候将结果写入即可。

    代码:

    public class Solution {
        public List<List<Integer>> subsets(int[] nums) {
    		List<List<Integer>> resList = new ArrayList<>();
    		
    		Arrays.sort(nums);
    		List<Integer> list=new ArrayList<>();
    		backtracking(resList, list, nums, 0);
    // 		System.out.println(resList);
    		return resList;
        }
    	
    	public void backtracking(List<List<Integer>> resList,List<Integer> list,int[] nums,int start) {
    		resList.add(new ArrayList<>(list));
    		for(int i=start;i<nums.length;i++){
    			list.add(nums[i]);
    			backtracking(resList, list, nums, i+1);
    			list.remove(list.size()-1);
    		}
    	}
    }
    

      

  • 相关阅读:
    python多进程(一)
    python操作memcached
    python操作redis
    SQLAlchemy总结
    SQLAlchemy-ORM
    python操作mysql二
    python操作mysql
    python正则二
    python正则
    python内置模块(三)
  • 原文地址:https://www.cnblogs.com/271934Liao/p/6964442.html
Copyright © 2020-2023  润新知