[Swift]LeetCode254.因子组合 $ Factor Combinations
发布时间:2020-12-14 05:07:24 所属栏目:百科 来源:网络整理
导读: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:? Each combination‘s factors must be sorted ascendi
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:?
Examples:? [] input:? [] input:? [ [2,6],[2,2,3],[3,4] ] input:? [ [2,16],8],4],2],4,[4,8] ] 数字可以被视为其因子的乘积。例如, 8 = 2 x 2 x 2; = 2 x 4. 编写一个接受整数n并返回所有可能的因子组合的函数。 注: 每个组合的因子必须按升序排序,例如:2和6的因子是[2,6],而不是[6,2]。 你可以假设n总是正的。 系数应大于1且小于n。 实例: 输入:1 输出: [] 输入:37 输出: [] 输入:12 输出: [ [2,4] ] 输入:32 输出: [ [2,8] ] 1 class Solution { 2 func getFactors(_ n:Int) -> [[Int]]{ 3 var res:[[Int]] = [[Int]]() 4 var arr:[Int] = [Int]() 5 helper(n,2,&arr,&res) 6 return res 7 } 8 9 func helper(_ n:Int,_ start:Int,_ out:inout [Int],_ res:inout [[Int]]) 10 { 11 var num:Int = Int(floor(sqrt(Double(n)))) 12 var i :Int = start 13 while(i <= num) 14 { 15 if n % i == 0 16 { 17 var new_out:[Int] = out 18 new_out.append(i) 19 helper(n / i,i,&new_out,&res) 20 new_out.append(n / i) 21 res.append(new_out) 22 } 23 i += 1 24 } 25 } 26 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |