欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)LeetCode(119.楊輝三角之二)

 更新時(shí)間:2021年07月26日 14:32:50   作者:Grandyang  
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(119.楊輝三角之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 119. Pascal's Triangle II 楊輝三角之二

Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.

Note that the row index starts from 0.


In Pascal's triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 3
Output: [1,3,3,1]

Follow up:

Could you optimize your algorithm to use only O(k) extra space?

楊輝三角想必大家并不陌生,應(yīng)該最早出現(xiàn)在初高中的數(shù)學(xué)中,其實(shí)就是二項(xiàng)式系數(shù)的一種寫法。

       ?。?br /> 1?。?br /> 1 2?。?br /> 1?。场。场。?br /> 1 4?。丁。础。?br /> 1 5 10 10?。怠。?br /> 1?。丁?5 20 15 6?。?br /> 1?。贰?1 35 35 21?。贰。?br /> 1?。浮?8 56 70 56 28?。浮。?/p>

楊輝三角形第n層(頂層稱第0層,第1行,第n層即第 n+1 行,此處n為包含0在內(nèi)的自然數(shù))正好對(duì)應(yīng)于二項(xiàng)式 \left(a+b\right)^{n} 展開的系數(shù)。例如第二層 1 2 1 是冪指數(shù)為2的二項(xiàng)式\left(a+b\right)^{2} 展開形式a^{2}+2ab+b^{2} 的系數(shù)。

由于題目有額外限制條件,程序只能使用 O(k) 的額外空間,那么這樣就不能把每行都算出來(lái),而是要用其他的方法, 我最先考慮用的是第三條性質(zhì),算出每個(gè)組合數(shù)來(lái)生成第n行系數(shù)。本地調(diào)試輸出前十行,沒啥問題,拿到 OJ 上測(cè)試,程序在第 18 行跪了,中間有個(gè)系數(shù)不正確。那么問題出在哪了呢,仔細(xì)找找,原來(lái)出在計(jì)算組合數(shù)那里,由于算組合數(shù)時(shí)需要算連乘,而整型數(shù) int 的數(shù)值范圍只有 -32768 到 32768 之間,那么一旦n值過(guò)大,連乘肯定無(wú)法計(jì)算。而喪心病狂的 OJ 肯定會(huì)測(cè)試到成百上千行,所以這個(gè)方法不行。那么我們?cè)賮?lái)考慮利用第五條性質(zhì),除了第一個(gè)和最后一個(gè)數(shù)字之外,其他的數(shù)字都是上一行左右兩個(gè)值之和。那么我們只需要兩個(gè) for 循環(huán),除了第一個(gè)數(shù)為1之外,后面的數(shù)都是上一次循環(huán)的數(shù)值加上它前面位置的數(shù)值之和,不停地更新每一個(gè)位置的值,便可以得到第n行的數(shù)字,具體實(shí)現(xiàn)代碼如下:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<int> res(rowIndex + 1);
        res[0] = 1;
        for (int i = 1; i <= rowIndex; ++i) {
            for (int j = i; j >= 1; --j) {
                res[j] += res[j - 1];
            }
        }
        return res;
    }
};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/119

類似題目:

Pascal's Triangle

參考資料:

https://leetcode.com/problems/pascals-triangle-ii/

https://leetcode.com/problems/pascals-triangle-ii/discuss/38420/Here-is-my-brief-O(k)-solution

https://leetcode.com/problems/pascals-triangle-ii/discuss/38478/My-accepted-java-solution-any-better-code

到此這篇關(guān)于C++實(shí)現(xiàn)LeetCode(119.楊輝三角之二)的文章就介紹到這了,更多相關(guān)C++實(shí)現(xiàn)楊輝三角之二內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VisualStudio2022提交git代碼的方法實(shí)現(xiàn)

    VisualStudio2022提交git代碼的方法實(shí)現(xiàn)

    本文主要介紹了VisualStudio2022提交git代碼的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C++中 STL list詳解及簡(jiǎn)單實(shí)例

    C++中 STL list詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了C++中 STL list詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • C++語(yǔ)言實(shí)現(xiàn)拼圖游戲詳解

    C++語(yǔ)言實(shí)現(xiàn)拼圖游戲詳解

    這篇文章主要為大家詳細(xì)介紹了C++基于EasyX庫(kù)實(shí)現(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C語(yǔ)言示例講解for循環(huán)的用法

    C語(yǔ)言示例講解for循環(huán)的用法

    初學(xué)C語(yǔ)言,常常遇到for循環(huán)中嵌套個(gè)for循環(huán),初學(xué)者對(duì)于這種形式總是一知半解,這次我就整理了常見的for循環(huán)嵌套for循環(huán)的題目,我們一起爭(zhēng)取一舉拿下這類題。學(xué)廢他們,以后再見到就不怕啦!每天都要學(xué)一點(diǎn)呀。加油,奮斗的我們
    2022-06-06
  • 詳解C語(yǔ)言讀取文件求某一列的平均值

    詳解C語(yǔ)言讀取文件求某一列的平均值

    本文粗淺比較了C語(yǔ)言中常用的幾種讀取文件的函數(shù)的效率,并給出了幾段求取某列平均值的代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多度進(jìn)步
    2022-02-02
  • C++實(shí)現(xiàn)完整功能的通訊錄管理系統(tǒng)詳解

    C++實(shí)現(xiàn)完整功能的通訊錄管理系統(tǒng)詳解

    來(lái)了來(lái)了,通訊錄管理系統(tǒng)踏著七彩祥云飛來(lái)了,結(jié)合前面的結(jié)構(gòu)體知識(shí)和分文件編寫方法,我總結(jié)并碼了一個(gè)帶菜單的通訊錄管理系統(tǒng),在這篇文章中將會(huì)提到C的清空屏幕函數(shù),嵌套結(jié)構(gòu)體具體實(shí)現(xiàn),簡(jiǎn)單且充實(shí),跟著我的思路,可以很清晰的解決這個(gè)項(xiàng)目
    2022-05-05
  • C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比

    C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比

    這篇文章主要介紹了C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比,分別用于讀取組格式函數(shù)和讀取密碼格式,需要的朋友可以參考下
    2015-08-08
  • C++實(shí)現(xiàn)電子時(shí)鐘效果

    C++實(shí)現(xiàn)電子時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)電子時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Qt的Qss用法小結(jié)

    Qt的Qss用法小結(jié)

    Qt的Qss是一種用于定義用戶界面的樣式表語(yǔ)言,本文主要介紹了Qt的Qss用法小結(jié),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 詳解PID控制器原理

    詳解PID控制器原理

    什么是 PID?它是一種在編程中使用的基本方法,如果正確調(diào)整,可以令人難以置信的有效和準(zhǔn)確,PID代表比例積分微分,3個(gè)單獨(dú)的部分連接在一起,雖然有時(shí)你不需要三個(gè)都使用。例如,您可以改為有P控制,PI控制或PD控制
    2021-06-06

最新評(píng)論