254 Factor Combinations

来源:互联网 发布:unity3d x y z 编辑:程序博客网 时间:2024/04/30 02:09

用了个backtracking的思路,不断累积,知道n除以自身变为1。。。但是这个算法一看就很多余,有很多多余的步骤,果然效率很低。。。

代码如下:

public class Solution {    public List<List<Integer>> getFactors(int n) {        List<Integer> item = new ArrayList<>();        List<List<Integer>> list= new ArrayList<>();        backtracking(list, item, n, 2);        return list;    }        private void backtracking(List<List<Integer>> list, List<Integer> item, int n, int start){        if(n==1){            if(item.size()>1){                list.add(new ArrayList<Integer>(item));            }            return;        }                for(int i=start; i<=n; i++){            if(n%i==0){                item.add(i);                backtracking(list, item, n/i, i);                item.remove(item.size()-1);            }         }            }}


改进后的代码如下:



0 0