combinationII(leetcode216)

2018-11-25  本文已影响0人  zhouwaiqiang

题目

解题思路

源代码

class Solution {
    public List<List<Integer>> combinationSum3(int k, int n) {
        List<List<Integer>> result = new ArrayList<>();
        List<Integer> temp = new ArrayList<>();
        combination(result, temp, 1, k, n);
        return result;
    }
    
    private void combination(List<List<Integer>> result, List<Integer> temp, int start, int k, int n) {
        if (k == 0 && n == 0) {
            result.add(new ArrayList<>(temp));
            return;
        }
        if (k == 0) return;//表示次数用完了
        for (int i = start; i <= 9; i++) {
            if (start > n) return;//start > n那么就不满足条件
            temp.add(i);
            combination(result, temp, i+1, k-1, n-i);
            temp.remove(temp.size()-1);
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读