zoukankan      html  css  js  c++  java
  • LeetCode Subsets

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

    Note:

    • Elements in a subset must be in non-descending order.
    • The solution set must not contain duplicate subsets.

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

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

    思路是,每次添加一个元素,就是在上一次的基础上,对每个列表加入元素,再与上一次的合并。

     1 public class Solution {
     2     public List<List<Integer>> subsets(int[] S) {
     3             List<List<Integer>> lastList=new ArrayList<>();
     4             List<Integer> nonSet= new ArrayList<>();
     5             lastList.add(nonSet);
     6             if (S==null || S.length==0) {
     7             return lastList;
     8             }
     9             Arrays.sort(S);
    10             
    11             for (int i = 0; i < S.length; i++) {
    12                 List<List<Integer>> tempList=new ArrayList<>();         
    13             for (List<Integer> list : lastList) {
    14                     List<Integer> currlist=new ArrayList<>();
    15                     currlist.addAll(list);
    16                     currlist.add(S[i]);
    17                     tempList.add(currlist);
    18             }
    19             lastList.addAll(tempList);
    20             }
    21             return lastList;
    22     }
    23 }
  • 相关阅读:
    生成二维码
    IIS与Apache同时使用80端口
    C# 时间类型
    EXT 省市三级联动及默认选择
    拼音首字母查询汉字内容
    web.config
    使用input=file上传
    Js 扩展
    Linux 调试错误
    图的最短路径Dijkstra
  • 原文地址:https://www.cnblogs.com/birdhack/p/4055511.html
Copyright © 2011-2022 走看看