83 - 找到第n个丑数

Posted wx62c62b36cedf9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了83 - 找到第n个丑数相关的知识,希望对你有一定的参考价值。


只包含2、3、5中的1个或多个因子的数称为丑数,要求按从小到大的顺序找到第n个丑数


2, 3, 5

6: 是丑数
14: 不是丑数,包含7

下一个丑数必定是数组的某一个丑数A * 2、B * 3、C * 5 中最小的值

M2, 之前的丑数*2都小于当前最大的丑数
之后的丑数*2都大于当前最大的丑数

M3、M5


def getUglyNumber(index):
if index < 1:
return 0
res = [1]
t2 = t3 = t5 = 0
nextdex = 1
while nextdex < index:
minNum = min(res[t2] * 2, res[t3] * 3, res[t5] * 5)
res.append(minNum)

while res[t2] * 2 <= minNum:
t2 += 1
while res[t3] * 2 <= minNum:
t3 += 1
while res[t5] * 2 <= minNum:
t5 += 1
nextdex += 1
return res[nextdex - 1]

print(getUglyNumber(10))
512

​84 - 哪一个小朋友不用表演节目​


以上是关于83 - 找到第n个丑数的主要内容,如果未能解决你的问题,请参考以下文章

丑数

Leetcode 264.丑数II

33求按从小到大的顺序的第N个丑数

c语言程序,要求输入一个n数输出第n个丑数。丑数是素因子只有2.3.5.7。非常急,谢谢。

剑指offer(二十八)之丑数

九度-题目1214:丑数