2021-09-07 刷题 119杨辉三角2

题目链接:https://leetcode-cn.com/problems/pascals-triangle-ii/

题目说明:

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。

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

 示例 1:
输入: rowIndex = 3
输出: [1,3,3,1]
示例 2:

输入: rowIndex = 0
输出: [1]
示例 3:

输入: rowIndex = 1
输出: [1,1]
答题思路:

1、观察杨辉三角每一行,每一列有什么关系,并使用编号进行编写

2、重点关注每一行与每一行的关系,并学会用数学公式表达出来(第i行的的第j个与第i-1行的j与j+1 相等)

3、扩展学习 滚动数组

若将杨辉三角的内容进行格式调整,则可规律性的进行代码编写

代码:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<vector <int>> A(rowIndex + 1);//定义一个数组
        for(int i = 0 ; i <=rowIndex; ++i){//循环第一层次,进行判断
            A[i].resize(i+1);
            A[i][0] = A [i][i] =1;
            for(int j = 1;j<i; ++j){
                A[i][j] = A[i-1][j] + A[i-1][j-1];
            }    
        }
         return A[rowIndex]; 
    } 
};

TIPS:c++中序列式容器的一个共性函数, vv.resize(int n,element)表示调整容器vv的大小为n,扩容后的每个元素的值为element,默认为0 resize()会改变容器的容量和当前元素个数 定义 vector<type> vv; 头文件#include<vector>

原文地址:https://www.cnblogs.com/gjianli/p/15237059.html