我是靠谱客的博主 激情热狗,最近开发中收集的这篇文章主要介绍python判断丑数_LeetCode Python 第n个丑数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

挨个找的方法, 效率比较低

def findKthUgly(k):

count = 0

n = 1

while True:

if isUgly(n):

count += 1

if count == k:

return n

else:

n += 1

def isUgly(number):

while number%2 == 0:

number = number/2

while number%3 == 0:

number = number/3

while number%5 == 0:

number == number/5

if number == 1:

return True

else:

return False

另外一种算法是从丑数出发*2,*3,*5计算后面的丑数,每次竞争上岗,将最小的值加入丑数列表,只是需要想办法找到比当前list中最大丑数大的第一个丑数,利用index2,index3,index5来维护每个数*2,*3,*5加入list,如果ugly[index2]*2加入list就将index2指向下一个丑数,以此类推。

def findKthUgly(k):

ugly = []

ugly.append(1)

index = 1

index2 = 0

index3 = 0

index5 = 0

while index < k:

val = min(ugly[index2]*2, ugly[index3]*3, ugly[index5]*5)

if ugly[index2]*2 == val:

index2 += 1

if ugly[index3]*3 == val:

index3 += 1

if ugly[index5]*5 == val:

index5 += 1

ugly.append(val)

index += 1

return ugly[-1]

最后

以上就是激情热狗为你收集整理的python判断丑数_LeetCode Python 第n个丑数的全部内容,希望文章能够帮你解决python判断丑数_LeetCode Python 第n个丑数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部