【刷题解析】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:

You may assume that n is always positive.

Factors should be greater than 1 and less than n.

Example 1:  Input:1Output:[]

Example 2:  Input:37Output:[]

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

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



中文翻译:

数字可以被看作是它的约数的乘积。举个例子:

8 = 2 x 2 x 2;

  = 2 x 4.

写一个函数,带一个整形参数n, 返回所有可能的约数组合。

注意:

你可以假设n总是正的。约数应该大于1并且小于n。

例子自己看上面的吧,以后这部分没有必要的话,尽量就不翻译了。



其实从Test case里,我们已经能看出一些解答的端倪,

首先,每个解答里面的约数都介于2~n - 1, 并且是按顺序从左到右递增。

那么思路就是对于数字n, 并且把当前解答里最后一个元素的值设为bound, n则需要找到 bound ~ sqrt (n)范围内的约数。这里sqrt(n)则是n的开根号,因为数字是递增的,所以不能够允许剩余的数字小于bound


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,438评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,325评论 0 19
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,792评论 0 33
  • 住五楼,喜欢呆二楼的休息区 在看书,老先生老太太经过 总是暖暖的问候 会问我在写什么 会担心灯光暗影响眼睛.......
    苏小花_阅读 171评论 0 0
  • 绘本课程介绍 你知道吗?全国有8000多家绘本馆都开故事会,其中有92%的故事会是跟绘画、手工还有戏剧相结合的!...
    Albert陈凯阅读 141评论 0 0