把只包含質因子2、3和5的數稱作醜數(ugly number),例如:2,3,4,5,6,8,9,10,12,15,等,習慣上我們把1當做是第乙個醜數。
寫乙個高效演算法,返回第n個醜數。
解法1: 判斷某個數是否為醜數,連續找到第n個醜數
#include using namespace std;
bool isugly(int num)
int nthugly(int n)
else
++x;
} return x - 1;
}int main()
解法2:在當前醜數里乘以2,3,5,找到最小的後續醜數新增到序列裡
#include using namespace std;
int minof3(int a, int b, int c)
long findugly(int n)
cout << ugly[n - 1];
delete ugly;
return 0;
}int main()
找到第N個醜數
把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。找到第n個醜數 方法1 存放num之前所有元素是否是醜數的flag int getuglynumber solution in...
求第N個醜數
原問題描述 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。這個題不是很難,基本上看完題就能想出解法,但是要想出時間複雜度為o n 的解法還是有點難度的。我最開始的解法時...
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 numbe...