【83 - 找到第n个丑数】落花踏尽游何处,笑入胡姬酒肆中。这篇文章主要讲述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 - 哪一个小朋友不用表演节目??
推荐阅读
- CSS 基于文字的图片马赛克你见过吗
- Spring从入门到精通—Bean标签详解
- Vmware 显示权限不足(每次右键管理员运行太麻烦?一招教你解决!)
- Python标准库之os库常用功能详解
- 成功解决( git add . 不生效不报错,commit 报错 “did not match any file(s) known to git”)
- 分治(详解残缺棋盘 —— Java代码实现)
- 计算机性能测试
- 计算机系统性能评价
- Linux 重定向与管道符