254. Factor Combinations

Medium

似懂非懂,

class Solution {
    public List<List<Integer>> getFactors(int n) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        dfsHelper(2, 1, n, res, list);
        return res;
    }
    
    private void dfsHelper(int start, int product, int n, List<List<Integer>> res, List<Integer> curt){
        if (start > n || product > n){
            return;
        }
        if (product == n){
            List<Integer> factors = new ArrayList<Integer>(curt);
            res.add(factors);
            return;
        }
        for (int i = start; i < n;  i++){
            if (i*product > n){
                break;
            }
            if (n % i == 0){
                curt.add(i);
                dfsHelper(i, i*product, n, res, curt);
                curt.remove(curt.size() - 1);
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容