Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Second solution in Clear category for Ugly Numbers by kazuki.h
def ugly_number(n: int) -> int:
ugly_dict = {0:1}
i2 = i3 = i5 = 0
n2, n3, n5 = 2, 3, 5
for i in range(1, n):
ugly_dict[i] = min(n2, n3, n5)
if ugly_dict[i] == n2:
i2 += 1
n2 = ugly_dict[i2] * 2
if ugly_dict[i] == n3:
i3 += 1
n3 = ugly_dict[i3] * 3
if ugly_dict[i] == n5:
i5 += 1
n5 = ugly_dict[i5] * 5
return ugly_dict[n-1]
Feb. 15, 2022
Comments: