首页 > 其他 > 详细

丑数问题(三指针)

时间:2020-04-13 09:13:05      阅读:71      评论:0      收藏:0      [点我收藏+]
我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。
 
示例:
输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
 
思路:
我们可以知道丑数数列中每个数组都是由之前的x2,x3或者x5得到的,对于数列中每个数都有x2,x3,x5排在他们后面
这样我们每次加入的都是最小的,这样我们可以定义3个指针去;
例如一开始d2,d3,d5都指向下标为1
dp[1]=1;
dp[2]=min(dp[d2]*2,min(dp[d3]*3,dp[d5]*5));
这里因为dp[d2]*2=2最小,所有将其加入,d2++;
同时主要考虑有情况会有两个一样大的,2*3=3*2 所有我们每次都要判断一下,如果一样大,两个指针都要向后移动。
技术分享图片

 

 

 

丑数问题(三指针)

原文:https://www.cnblogs.com/Charls/p/12688886.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!