国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode】劍指 Offer(25)

這篇具有很好參考價值的文章主要介紹了【LeetCode】劍指 Offer(25)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

題目:劍指 Offer 49. 丑數(shù) - 力扣(Leetcode)

題目的接口:

解題思路:

代碼:

過啦?。?!

寫在最后:


題目:劍指 Offer 49. 丑數(shù) - 力扣(Leetcode)

【LeetCode】劍指 Offer(25)

題目的接口:

class Solution {
public:
    int nthUglyNumber(int n) {

    }
};

解題思路:

丑數(shù)這道題用到一點動態(tài)規(guī)劃的思想,

具體思路如下:

根據(jù)題意:

如果說第一個丑數(shù)是一,包含質(zhì)因子 2、3 和 5 的數(shù)稱作丑數(shù),

那么我們發(fā)現(xiàn),之后的丑數(shù):

1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 個丑數(shù)。

都是前面的丑數(shù)乘2、乘3或者乘5 得來的,

那我們的思路就能變成:

從第一個數(shù)1開始,讓他乘2、乘3、乘5,

第二個數(shù)也這樣操作,

然后取他們的最小值作為下一個丑數(shù),

以此類推,?

三個指針,分別用來乘2、乘3、乘5,

取得最小值的那個指針指向下一個數(shù),

如果出現(xiàn)兩個數(shù)相等的情況,

例:

2 * 5 == 5 * 2

那就兩個指針都指向下一個數(shù),

防止重復(fù),

最后返回第n個丑數(shù)即可。

例:

【LeetCode】劍指 Offer(25)

根據(jù)規(guī)則:從第一個數(shù)1開始,讓他乘2、乘3、乘5

一乘二,指針往后走一個:

【LeetCode】劍指 Offer(25)

一乘三,指針往后走一個:

【LeetCode】劍指 Offer(25)

這個時候,二乘二比一乘五更小,

所以這里走的是二乘二:

【LeetCode】劍指 Offer(25)??

然后是一乘五:

?【LeetCode】劍指 Offer(25)

?以此類推,就能計算出之后的丑數(shù)了。

?下面是代碼:

代碼:

class Solution {
public:
    int nthUglyNumber(int n) {
        //創(chuàng)建n + 1大小的數(shù)組
        vector<int> dp(n + 1);

        //初始化三指針   
        int a = 0, b = 0, c = 0;

        //數(shù)組從1開始
        dp[0] = 1;

        //循環(huán)
        for(int i = 1; i < n; i++)
        {
            //讓三指針*2 *3 *5 并選出最小值,就是下一個丑數(shù)
            int n2 = dp[a] * 2, n3 = dp[b] * 3, n5 = dp[c] * 5;

            //取最小值
            dp[i] = min(min(n2, n3), n5);

            //如果該下標(biāo)對應(yīng)的數(shù)是下一個丑數(shù),就讓指針指向下一個
            //如果有兩個數(shù)結(jié)果相同,就讓那兩個指針都指向下一個
            //防止重復(fù)
            if(n2 == dp[i])
            {
                a++;
            }
            if(n3 == dp[i])
            {
                b++;
            }
            if(n5 == dp[i])
            {
                c++;
            }
        }
        //最后返回第n個丑數(shù)
        return dp[n - 1];
    }
};

過啦?。?!

【LeetCode】劍指 Offer(25)

寫在最后:

以上就是本篇文章的內(nèi)容了,感謝你的閱讀。

如果喜歡本文的話,歡迎點贊和評論,寫下你的見解。

如果想和我一起學(xué)習(xí)編程,不妨點個關(guān)注,我們一起學(xué)習(xí),一同成長。

之后我還會輸出更多高質(zhì)量內(nèi)容,歡迎收看。文章來源地址http://www.zghlxwxcb.cn/news/detail-405752.html

到了這里,關(guān)于【LeetCode】劍指 Offer(25)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【LeetCode】丑數(shù)題目合輯

    【LeetCode】丑數(shù)題目合輯

    思路 首先,丑數(shù)必須是 正整數(shù) ,因此對于 n1 都可以直接返回 false; 對于 n = 1 ,如果 n 能夠被 2/3/5 整除,說明它們是丑數(shù)。 代碼 思路 要得到第 n 個丑數(shù),可以使用 最小堆 實現(xiàn)。 初始化堆為空,首先將最小的丑數(shù) 1 加入。每次取出堆頂元素 x ,則 x 是堆中最小的丑數(shù),

    2024年02月13日
    瀏覽(21)
  • 【劍指offer刷題記錄 java版】數(shù)組雙指針 之 其它題目

    【劍指offer刷題記錄 java版】數(shù)組雙指針 之 其它題目

    本系列文章記錄labuladong的算法小抄中劍指offer題目 題目鏈接:https://leetcode.cn/problems/XltzEq/ 題目鏈接:https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 題目鏈接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/ 題目鏈接:https://leetcode.cn/problems/he-wei-sde-

    2024年02月11日
    瀏覽(22)
  • 【LeetCode】劍指 Offer(27)

    【LeetCode】劍指 Offer(27)

    目錄 題目:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 那么這道題呢, 如果只是作為一道題,或者說筆試題, 我們當(dāng)然是二話不說直接暴力拿下, 來看代碼: 是的,就是這么簡單,三行代碼暴力拿下

    2023年04月13日
    瀏覽(22)
  • 【LeetCode】劍指 Offer(21)

    【LeetCode】劍指 Offer(21)

    目錄 題目:劍指 Offer 39. 數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù)字 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 題目:劍指 Offer 40. 最小的k個數(shù) - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦!?。?寫在最后: 這道題,我的思路是直接排序, 然后返回中間

    2023年04月10日
    瀏覽(29)
  • 【LeetCode】劍指 Offer(28)

    【LeetCode】劍指 Offer(28)

    目錄 題目:劍指 Offer 54. 二叉搜索樹的第k大節(jié)點 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 題目:劍指 Offer 55 - I. 二叉樹的深度 - 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。。?題目:劍指 Offer 55 - II. 平衡二叉樹 - 力扣(Leetcode) 題目的接

    2023年04月24日
    瀏覽(34)
  • 【LeetCode】劍指 Offer(26)

    【LeetCode】劍指 Offer(26)

    目錄 題目:劍指 Offer 51. 數(shù)組中的逆序?qū)?- 力扣(Leetcode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 這一道題,我的思路是用雙指針暴力求解, 但這個數(shù)組長度,O(N^2)的時間復(fù)雜度肯定是不可能把所有樣例跑完, 看了大佬的思路,用的是歸并排序,(如果不

    2023年04月11日
    瀏覽(20)
  • 【LeetCode】劍指 Offer <二刷>(6)

    【LeetCode】劍指 Offer <二刷>(6)

    目錄 題目:劍指 Offer 12. 矩陣中的路徑 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。。?題目:劍指 Offer 13. 機器人的運動范圍 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 這是一道經(jīng)典的搜索題,用和是深度優(yōu)先搜素,這個方法

    2024年02月09日
    瀏覽(20)
  • 【LeetCode】劍指 Offer <二刷>(3)

    【LeetCode】劍指 Offer <二刷>(3)

    目錄 題目:劍指 Offer 06. 從尾到頭打印鏈表 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。。?題目:劍指 Offer 07. 重建二叉樹 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。。?寫在最后: 這道題我讀完之后想到了兩種思路,1、直接從后往前去鏈表

    2024年02月10日
    瀏覽(28)
  • 【LeetCode】劍指 Offer <二刷>(4)

    【LeetCode】劍指 Offer <二刷>(4)

    目錄 題目:劍指 Offer 09. 用兩個棧實現(xiàn)隊列 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。?! 題目:劍指 Offer 10- I. 斐波那契數(shù)列 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 這道題我用 C++ 寫的時候是比較簡單順手的,用 STL 可以

    2024年02月10日
    瀏覽(19)
  • 【LeetCode】劍指 Offer <二刷>(1)

    【LeetCode】劍指 Offer <二刷>(1)

    目錄 前言: 題目:劍指 Offer 03. 數(shù)組中重復(fù)的數(shù)字 - 力扣(LeetCode) 題目的接口: 解題思路: 代碼: 過啦?。?! 寫在最后: 剛學(xué) golang 半個多月,看了一堆的文檔啊,框架啊,許許多多的東西,學(xué)到了很多,但是代碼沒有怎么上手寫,所以我就決定用 golang 二刷劍指 Offe

    2024年02月09日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包