Skip to content

Files

Latest commit

958c394 · Nov 6, 2018

History

History

0119.Pascal's Triangle II

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Nov 6, 2018
Nov 6, 2018

杨辉三角 II

问题描述

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

杨辉三角

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 3
输出: [1,3,3,1]

进阶:

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


思路

利用滚动数组的思想(和118题一样,省了行坐标):

因为每一个列坐标都是上一个行同列和前列之和,所以,只需要一组数组就可以模拟出来,并不需要二维数组

col[j] = col[j]+col[j-1];

注意:因为使用了j-1列和j列,为了防止重叠,不能从前往后跟新数组;只能从后往前

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