Leetcode——118.杨辉三角——题解+代码实现

一、题目


给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

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

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

二、题解思路


  • 题解思路:先定义二维数组,但是数组每行的元素个数和是行号的数字大小;遍历二维数组,每行边缘位置赋值为1,其余位置的值是其上一行左上和右上的数之和。

三、代码实现


  • C++代码实现

class Solution {
public:
    vector> generate(int numRows) 
    {
        vector> nums1;
        for(int i=1;i<=numRows;i++)           //对于第i行,存i个元素,先赋值为0,后期存入其他值覆盖
            nums1.push_back(vector(i,0));
        
        for(int i=0;i

四、知识点学习


  • 如何定义一个第 i 行存 i 个元素的二维vector向量
vector> nums1;
for(int i=1;i<=numRows;i++)           //对于第i行,存i个元素,先赋值为0,后期存入其他值覆盖
    nums1.push_back(vector(i,0));

      即第一行存一个元素、第二行存两个元素、第三行存三个元素...............

你可能感兴趣的:(Leetcode刷题记录)