LeetCode 118. 杨辉三角 简单

题目 - 点击直达

  • [1. 118. 杨辉三角 简单](#1. 118. 杨辉三角 简单)
    • [1. 题目详情](#1. 题目详情)
      • [1. 原题链接](#1. 原题链接)
      • [2. 题目要求](#2. 题目要求)
      • [3. 基础框架](#3. 基础框架)
    • [2. 解题思路](#2. 解题思路)
      • [1. 思路分析](#1. 思路分析)
      • [2. 时间复杂度](#2. 时间复杂度)
      • [3. 代码实现](#3. 代码实现)

1. 118. 杨辉三角 简单

1. 题目详情

给定一个非负整数 numRows,生成「杨辉三角」的前 n u m R o w s numRows numRows 行。

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

1. 原题链接

LeetCode 118. 杨辉三角 简单

2. 题目要求

示例 1:

输入: numRows = 5

输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:

输入: numRows = 1

输出: [[1]]

提示:
1 < = n u m R o w s < = 30 1 <= numRows <= 30 1<=numRows<=30

3. 基础框架

● Cpp代码框架

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generate(int numRows) {
    }
};

2. 解题思路

1. 思路分析

( 1 ) (1) (1) 找到杨辉三角的规则:

  1. 最左边位置上的数都是1;
  2. 对角线位置上的数都是1;
  3. 普通位置上的数 = 上一行且同一列位置的数 + 上一行且前一列位置的数;
  4. 第n行的元素个数是n个;

( 2 ) (2) (2) 进行两层循环,外层循环对应生成n行序列;内层循环对应本次生成的序列,生成规则已知;

2. 时间复杂度

O ( N 2 ) O(N^2) O(N2)

两层循环,共生成 n n n层,第 i i i层生成的元素是 i i i个,其中 1 < = i < = n 1<=i<=n 1<=i<=n;
1 + 2 + 3 + . . . + i + . . . n = ( n ∗ ( n + 1 ) ) / 2 1+2+3+...+i+...n=(n*(n+1))/2 1+2+3+...+i+...n=(n∗(n+1))/2

3. 代码实现

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> vv;
        for(int i = 0; i < numRows; ++i){
            vector<int> tmp(i + 1);
            for(int j = 0; j <= i; ++j){
                if(j == 0 || j == i){
                    tmp[j] = 1;
                }
                else{
                    tmp[j] = vv[i - 1][j] + vv[i - 1][j - 1];
                }
            }
            vv.push_back(tmp);
        }
        return vv;
    }
};

T h e The The E n d End End

相关推荐
D_evil__6 分钟前
【Effective Modern C++】第七章 并发API:35. 优先考虑基于任务的编程而非基于线程的编程
c++
plus4s8 分钟前
2月23日(97-99题)
算法
hansang_IR13 分钟前
【记录】AT_abc406模拟赛
c++·算法·模拟赛
blackicexs16 分钟前
第六周第一天
数据结构·算法
52Hz11819 分钟前
力扣20.有效的括号、155.最小栈
python·算法·leetcode
菜鸡儿齐1 小时前
leetcode-电话号码的字母组合
算法·leetcode·职场和发展
We་ct1 小时前
LeetCode 236. 二叉树的最近公共祖先:两种解法详解(递归+迭代)
前端·数据结构·算法·leetcode·typescript
小白菜又菜1 小时前
Leetcode 229. Majority Element II
算法·leetcode·职场和发展
Frostnova丶2 小时前
LeetCode 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
算法·leetcode·哈希算法
消失的旧时光-19432 小时前
C++ 多线程与并发系统取向(七)—— 并发排障与工程纪律(从“会写”到“能控场”)
开发语言·c++·并发