zoukankan      html  css  js  c++  java
  • LeetCode subsets

    迭代算法:

    import java.util.LinkedList;
    import java.util.List;
    
    class Solution {
    
        public List<List<Integer>> subsets(int[] nums) {
            List<List<Integer>> res = new ArrayList<>();
            res.add(new LinkedList<>());
            for (int i = nums.length; i > 0; i--) {
                int size = res.size();
                for (int k = 0; k < size; k++) {
                    List<Integer> path2 = new LinkedList<>(res.get(k));
                    path2.add(nums[i - 1]);
                    res.add(path2);
                }
            }
            return res;
        }
    }

    递归算法:

    import java.util.LinkedList;
    import java.util.List;
    
    class Solution {
    
        public List<List<Integer>> subsets(int[] nums) {
            List<List<Integer>> routes = new LinkedList<>();
            buildRoutes(routes, new LinkedList<>(), nums.length, nums);
            return routes;
        }
    
        private void buildRoutes(List<List<Integer>> routes, List<Integer> link, int count, int[] nums) {
            if (count > 0) {
                buildRoutes(routes, link, count - 1, nums);
                List<Integer> link2 = new LinkedList<>(link);
                link2.add(nums[count - 1]);
                buildRoutes(routes, link2, count - 1, nums);
            } else {
                routes.add(link);
            }
        }
    }
  • 相关阅读:
    MongoDB笔记
    mysql笔记
    08-下载中间件
    ubuntu1804安装pycharm2018.3.x
    02-CSS基础
    14-eval 函数
    13-文件
    12-模块和包
    11-异常
    有关dir和 unittest
  • 原文地址:https://www.cnblogs.com/shuada/p/9780143.html
Copyright © 2011-2022 走看看