美文网首页
LeetCode 77. Combinations

LeetCode 77. Combinations

作者: 关玮琳linSir | 来源:发表于2017-10-26 23:02 被阅读13次

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.

    For example,
    If n = 4 and k = 2, a solution is:

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

    题意:给你n个数,组成k位的密码,列出所有可能。

    思路:递归,动态往里添加

    代码:

    class Solution {
        public List<List<Integer>> combine(int n, int k) {
            List<List<Integer>> res = new ArrayList<>();
            fun(res, new ArrayList<Integer>(), 0, n, k);
            return res;
        }
    
        public void fun(List<List<Integer>> res, List<Integer> list, int start, int n, int k) {
            if (list.size() == k) {
                res.add(new ArrayList<Integer>(list));
                return;
            }
            for (int i = start; i < n; i++) {
                list.add(i + 1);
                fun(res, list, i + 1, n, k);
                list.remove(list.size() - 1);
            }
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:LeetCode 77. Combinations

          本文链接:https://www.haomeiwen.com/subject/ntplpxtx.html