119. 杨辉三角 II

内容

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 *k *行。

image

<small style="box-sizing: border-box; font-size: 12px;">在杨辉三角中,每个数是它左上方和右上方的数的和。</small>

示例:

<pre style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 13px; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; word-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">输入: 3
输出: [1,3,3,1]
</pre>

进阶:

你可以优化你的算法到 O(k) 空间复杂度吗?


思路


代码

/**
 * @param {number} rowIndex
 * @return {number[]}
 */
var getRow = function (rowIndex) {
    if (rowIndex == 0) return [1];
    if (rowIndex == 1) return [1, 1];
    if (rowIndex == 2) return [1, 2, 1];
    var save = [1, 2, 1];

    for (var i = 3; i <= rowIndex; i++) {
        var newArray = [];
        for (var j = 0; j < save.length - 1; j++) {
            newArray.push(save[j] + save[j + 1]);
        }

        newArray.unshift(1);
        newArray.push(1);

        save = newArray;
    }

    return save;
};

回到目录

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容