20190423 每天一道演算法題 醜數 (堆)

2021-09-19 20:36:40 字數 1100 閱讀 2554

編寫乙個程式,找出第n個醜數。

醜數就是只包含質因數2, 3, 5的正整數。

示例:輸入:n = 10,輸出:12

解釋: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12,是前 10 個醜數。

說明:1. 1是醜數。

2. n不超過1690。

#include#includeint nthuglynumber(int n);

void main(void)

//求最小當前要插入的最小丑數

int min_choushu(int *p1, int *p2, int *p3)

//後面的每個醜數都是前面的醜數乘以2/3/5得來的,因此每次計算前面醜數與2/3/5的乘積,並將最小的結果插入到醜數序列裡。(效率高跟多)

int nthuglynumber(int n) ;

int *p1 = (int *)malloc(sizeof(int));

int *p2 = (int *)malloc(sizeof(int));

int *p3 = (int *)malloc(sizeof(int));

int k;

int index2 = 0;

int index3 = 0;

int index5 = 0;

for (k = 0; k < n-1; k++)

return ugly[k];

}從1開始遍歷(超出時間限制),直到count=n,條件是:只要能整除2(3/5),就一直除以2(3/5),直到不能再繼續除為止,如果最終結果為1,那麼為醜數,否則不是醜數。

//int nthuglynumber(int n)

// while (tmp % 3 == 0)

// while (tmp % 5 == 0)

// if (tmp == 1)

// count++;

// }

// return --k; //這裡是--k,因為最後一次迴圈k又加了1,所以輸出要減1。

//}

每天一道演算法題

no.1 棧是特殊的線性表,它。a.對 b.錯答案 錯,它的插入和刪除都是在同一端進行的。no.2 n個葉子節點的滿二叉樹 除了葉子節點,每個節點都有兩個孩子 總共有多少個節點?a.2n 1 b.2n c.n 1 d.n答案 a 滿二叉樹我們講過了,度為0的節點比度為2的加點多乙個。滿二叉樹是特殊的...

每天一道演算法題

1.給定乙個只包括 的字串,判斷字串是否匹配。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。思路 正確思路 不需要考慮輸入內容是否合法,這只是做題,不是工程 定義乙個字典,後括號為鍵,前半部分為值 定義乙個元素儲存棧頂,注意這個設定,取棧...

每天一道演算法題

1 js計算某個字串出現的次數 j ascript計算乙個字串最多重複的字元及出現次數.var str zhaochucichuzuiduodezifu var o for var i 0,length str.length i length i else console.log o 輸出的是完整的...