264 Ugly Number II
https://leetcode.com/problems/ugly-number-ii/
题目大意:
ugly number指的是只以2,3,5为因数的数,求第n个数
思路:
虽然是一个数组,但通过三个下标实际好像三个虚数组。每次从三个数组中生成的最小数来更新实际数组。
class Solution(object):
def nthUglyNumber(self, n):
"""
:type n: int
:rtype: int
"""
ugly = [1]
p = 1
p1=p2=p3=0
for i in range(n-1):
# print(ugly[p-1])
ugly.append(min(ugly[p1]*2,ugly[p2]*3,ugly[p3]*5))
if(ugly[p]>=ugly[p1]*2):
p1+=1
if(ugly[p]>=ugly[p2]*3):
p2+=1
if(ugly[p]>=ugly[p3]*5):
p3+=1
p+=1
return ugly[p-1]