4. 丑数 II

class Solution:
    """
    @param n: An integer
    @return: the nth prime number as description.
    """
    def nthUglyNumber(self, n):
        # write your code here
        def un(a,b,c):
        	return 1*(2**a)*(3**b)*(5**c)
        r=[1]
        edge ={2:[1,0,0],3:[0,1,0],5:[0,0,1]}
        
        def walk(r,edge):
        	m = min(edge)
        	a,b,c = edge[m]
        	r.append(m)
        	edge[un(a+1,b,c)] = [a+1,b,c] 
        	edge[un(a,b+1,c)] = [a,b+1,c] 
        	edge[un(a,b,c+1)] = [a,b,c+1] 	
        	edge.pop(m)
        
        
        while(len(r)!=n):
        	walk(r,edge)
        return r[-1]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值