zoukankan      html  css  js  c++  java
  • [leetcode]254. Factor Combinations因式组合

    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.

    Example 1:

    Input: 1
    Output: []

    Example 2:

    Input: 37
    Output:[]

    Example 3:

    Input: 12
    Output:
    [
      [2, 6],
      [2, 2, 3],
      [3, 4]
    ]

    Example 4:

    Input: 32
    Output:
    [
      [2, 16],
      [2, 2, 8],
      [2, 2, 2, 4],
      [2, 2, 2, 2, 2],
      [2, 4, 4],
      [4, 8]
    ]

    题意:

    给定正整数n,返回所有乘积等于n的不同组合(除了n = n)。为避免重复,所有乘数单调递增。

    思路:

    backtracking

    代码:

     1 class Solution {
     2     public List<List<Integer>> getFactors(int n) {
     3         List<List<Integer>> res = new ArrayList<>();
     4         helper(res, new ArrayList<>(), n, 2);
     5         return res;
     6     }
     7     
     8     public void helper(List<List<Integer>> res, List<Integer> list, int n, int start){
     9         if(n == 1){
    10             if(list.size() > 1){
    11                 res.add(new ArrayList<>(list));
    12                 return;
    13             }
    14         }
    15         for(int i = start; i< = n; i++){
    16             if(n % i== 0){
    17                 list.add(i);
    18                 helper(res, list, n/i, i);
    19                 list.remove(list.size()-1);
    20             }
    21         }
    22     }
    23 }
  • 相关阅读:
    单元测试笔记
    centos7安装rabbitmq
    spring cache之redis使用示例
    ObjectMapper序列化时间
    安装alertmanager
    prometheus安装
    Ribbon配置随访问策略
    优化if..else代码的两种方式
    spring bean的生命周期
    idea热部署
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9158323.html
Copyright © 2011-2022 走看看