設計乙個演算法,找出只含素因子2,3,5 的第 n 小的數。思路:符合條件的數如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12…
樣例 如果n = 9, 返回 10
挑戰 要求時間複雜度為o(nlogn)或者o(n)
根據醜數的定義可知,每乙個醜數都是由前面的醜數生成。例如:2是由1*2得來,3是由1 *3得來。
c++:
class solution
else
}int nthuglynumber(int n)
if(ugly[i]/ugly[num_3]==3)
if(ugly[i]/ugly[num_5]==5)
}return ugly[n-1];
}};
py3:
class
solution:
""" @param n: an integer
@return: the nth prime number as description.
"""defnthuglynumber
(self, n):
# write your code here
ugly = [1]
num_2,num_3,num_5 = 0,0,0
for i in range(1,n):
min = min(min(ugly[num_2]*2,ugly[num_3]*3),ugly[num_5]*5)
if ugly[i]/ugly[num_2]==2:
num_2 += 1
if ugly[i]/ugly[num_3]==3:
num_3 +=1
if ugly[i]/ugly[num_5]==5:
num_5 += 1
return ugly[n-1]
LeetCode刷題 醜數
編寫乙個程式判斷給定的數是否為醜數。醜數就是只包含質因數 2,3,5 的正整數。示例 1 輸入 6 輸出 true 解釋 6 2 3 示例 2 輸入 8 輸出 true 解釋 8 2 2 2 示例 3 輸入 14 輸出 false 解釋 14 不是醜數,因為它包含了另外乙個質因數 7。說明 1 是醜...
LeetCode刷題 醜數
編寫乙個程式判斷給定的數是否為醜數。醜數就是只包含質因數 2,3,5 的正整數。示例 1 輸入 6 輸出 true 解釋 6 2 3 示例 2 輸入 8 輸出 true 解釋 8 2 2 2 示例 3 輸入 14 輸出 false 解釋 14 不是醜數,因為它包含了另外乙個質因數 7。說明 1 是醜...
刷題 醜數 python
題目 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。思路 所有醜數可以通過前面的醜數乘2 3 5得到,主要是要知道如何將這些數從小到大排序,以確定排在第n個位置的醜數。...