zoukankan      html  css  js  c++  java
  • 254. Factor Combinations

    https://leetcode.com/problems/factor-combinations/description/

    Numbers can be regarded as product of its factors. For example,

    8 = 2 x 2 x 2;
      = 2 x 4.
    

    Write a function that takes an integer n and return all possible combinations of its factors.

    Note: 

    1. You may assume that n is always positive.
    2. Factors should be greater than 1 and less than n.

    Examples: 
    input: 1
    output: 

    []
    
    input: 37
    output: 
    []
    
    input: 12
    output:
    [
      [2, 6],
      [2, 2, 3],
      [3, 4]
    ]
    
    input: 32
    output:
    [
      [2, 16],
      [2, 2, 8],
      [2, 2, 2, 4],
      [2, 2, 2, 2, 2],
      [2, 4, 4],
      [4, 8]
    ]
    

    Sol:

    public class Solution {
        public List<List<Integer>> getFactors(int n) {
            // recursive DFS
            
            List<List<Integer>> result = new ArrayList<List<Integer>>();
            helper(result, new ArrayList<Integer>(), n, 2);
            return result;
            
        }
        
        public void helper(List<List<Integer>> result, List<Integer> item, int n, int start){
            // base case
            if (n <= 1){
                if (item.size() > 1){
                    result.add(new ArrayList<Integer>(item));
                }
                return ;
            }
            
            for (int i = start; i <= n; ++i){
                if (n % i == 0){
                    item.add(i);
                    helper(result, item, n/i, i);
                    item.remove(item.size() - 1);
                }
            }
            
            
        }
            
            
            
    }
  • 相关阅读:
    vbox虚拟机网络设置
    增删改查
    事务
    jsp&el&jstl mvc和三层架构
    cookie&session
    request
    Response
    eclipse操作(备忘)
    Servlet
    Http&Tomcat
  • 原文地址:https://www.cnblogs.com/prmlab/p/7295264.html
Copyright © 2011-2022 走看看