最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

[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?

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

        1
1?。?br /> 1?。病。?br /> 1 3?。场。?br /> 1?。础。丁。础。?br /> 1?。怠?0 10?。怠。?br /> 1?。丁?5 20 15?。丁。?br /> 1?。贰?1 35 35 21 7?。?br /> 1 8 28 56 70 56 28?。浮。?/p>

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

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

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

相關文章

最新評論

弋阳县| 临泽县| 齐齐哈尔市| 遵化市| 栾川县| 辉南县| 新巴尔虎左旗| 淮阳县| 恩平市| 安宁市| 婺源县| 繁昌县| 论坛| 台南县| 永胜县| 陆河县| 呼和浩特市| 宁明县| 丰镇市| 页游| 大埔县| 广德县| 昭通市| 资中县| 青冈县| 宜良县| 鄂伦春自治旗| 墨玉县| 当阳市| 铜梁县| 乐业县| 图们市| 沁水县| 铜鼓县| 湖州市| 厦门市| 玉林市| 泸西县| 乐安县| 山阳县| 曲周县|