首页 > 代码库 > [LeetCode]77 Combinations

[LeetCode]77 Combinations

https://oj.leetcode.com/problems/combinations/

http://blog.csdn.net/linhuanmars/article/details/21260217


public class Solution {
    public List<List<Integer>> combine(int n, int k)
    {
        List<List<Integer>> results = new ArrayList<>();
        help(n, k, 0, new ArrayList<Integer>(), results);
        return results;
    }
    
    private void help(int n, int k, int start, List<Integer> items, List<List<Integer>> results)
    {
        if (items.size() == k)
        {
            results.add(new ArrayList<Integer>(items));
            return;
        }
        
        for (int i = start ; i < n ; i ++)
        {
            // Not using used
            // is because we don‘t care about order.
            // Only go forwards.
            //
            // If order matters, need to use used:boolean[]
            items.add(i + 1);
            
            help(n, k, i + 1, items, results);
            
            items.remove(items.size() - 1);
        }
    }
}


[LeetCode]77 Combinations