题解 | #丑数#
丑数
http://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b
思路:
知道这个就很好做了:每个正整数都能够以唯一的方式表示成它的质因数的乘积。
即,2,3,5几个数字的乘积
class Solution: def GetUglyNumber_Solution(self, index): # write code here dp = [1]*index if index<=0: return 0 p2,p3,p5 = 0,0,0 for i in range(1,index): dp[i] = min(dp[p2]*2,dp[p3]*3,dp[p5]*5) if dp[i] == dp[p2]*2: p2+=1 if dp[i] == dp[p3]*3: p3+=1 if dp[i] == dp[p5]*5: p5+=1 return dp[index-1]