真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java如何查出丑數(shù)

本文將為大家詳細介紹“java如何查出丑數(shù)”,內(nèi)容步驟清晰詳細,細節(jié)處理妥當,而小編每天都會更新不同的知識點,希望這篇“java如何查出丑數(shù)”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。

成都創(chuàng)新互聯(lián)公司主打移動網(wǎng)站、成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護、域名與空間、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再決定采用什么樣的設(shè)計。最后,要實現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計,我們還會規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。

編寫一個程序,找出第 n 個丑數(shù)。
丑數(shù)就是只包含質(zhì)因數(shù) 2, 3, 5 的正整數(shù)。
示例:

輸入: n = 10
輸出: 12
解釋:  是前 10 個丑數(shù)。

說明:  

  1. 1 是丑數(shù)。

  2. n 不超過1690。

答案:

 1public int nthUglyNumber(int n) {
2    if (n <= 1)
3        return n;
4    int t2 = 0, t3 = 0, t5 = 0;
5    int[] k = new int[n];
6    k[0] = 1;
7    for (int i = 1; i < n; i++) {
8        k[i] = Math.min(k[t2] * 2, Math.min(k[t3] * 3, k[t5] * 5));
9        if (k[i] == k[t2] * 2)
10            t2++;
11        if (k[i] == k[t3] * 3)
12            t3++;
13        if (k[i] == k[t5] * 5)
14            t5++;
15    }
16    return k[n - 1];
17}

解析:

丑數(shù)除了第一個是0以外,其他的都可以這樣表示

1*(2,3,5),

2*(2,3,5),

3*(2,3,5),

4*(2,3,5),

……………………

題目中說要找到第n個丑數(shù),這n個丑數(shù)都是按照從小到大的順序查找的。所以每次查找的時候都是找最小的。下面再來看一種解法

 1public int nthUglyNumber(int n) {
2    if (n == 1)
3        return 1;
4    PriorityQueue q = new PriorityQueue();
5    q.add(1L);
6    for (long i = 1; i < n; i++) {
7        long tmp = q.poll();
8        while (!q.isEmpty() && q.peek() == tmp)
9            tmp = q.poll();
10        q.add(tmp * 2);
11        q.add(tmp * 3);
12        q.add(tmp * 5);
13    }
14    return q.poll().intValue();
15}

PriorityQueue默認是一個小頂堆的優(yōu)先隊列,poll表示的是移除最頂端的元素,也是最小的元素,然后再用最小的元素分別和2,3,5進行相乘,add方法加入到隊列的時候又會進行排序,保證最頂端的元素是最小的。

Java可以用來干什么

Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。

感謝您能讀到這里,小編希望您對“java如何查出丑數(shù)”這一關(guān)鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文標題:java如何查出丑數(shù)
標題鏈接:http://weahome.cn/article/pjsgej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部