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);
            }
        }
    }
  • 相关阅读:
    程序员外包网站
    网络测试
    数据库系统在线网课
    字体
    正则表达式测试工具
    豆瓣Top250数据可视化
    前端模板
    豆瓣Top250电影爬取
    PyCharm激活码
    爬虫禁止访问解决方法(403)
  • 原文地址:https://www.cnblogs.com/shuada/p/9780143.html
Copyright © 2011-2022 走看看