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

相关推荐
hanlin03几秒前
刷题笔记:力扣第76题-最小覆盖子串
笔记·算法·leetcode
Zane19942 分钟前
比较排序跑不出O(nlogn)是数学上证明过的,计数、桶、基数排序凭什么能绕开这堵墙
算法·排序算法
tiger8653 分钟前
大语言模型面试和题解,梳理中国主流开源 LLM 系列的发展脉络、技术路线与工程取舍
人工智能·gpt·深度学习·算法·自然语言处理·面试·transformer
Methy7 分钟前
IoTHub半个月崩了五次?都是裸rethrow惹的祸
服务器·c++·后端
我不会起名字32216 分钟前
一天一道力扣Hot100(36):深度优先算法---组合总和
数据结构·c++·后端·python·算法·go
纪念 22920 分钟前
c++类和对象(四)
开发语言·c++
汉克老师32 分钟前
GESP2026年9月认证C++六级( 第三部分编程题(2、分树规划))精讲
c++·gesp·小学生·学c++编程
学生小羊38 分钟前
C++ 初阶 学习博客
c语言·c++·c++与c语言的区别·c++基础学习
虚无的纽扣43 分钟前
【力扣刷题】第三天:有效三角形的个数、快乐数
算法·排序算法
tiger8651 小时前
大语言模型面试和题解,Context Engineering 怎么做?长 Prompt、动态上下文与 Memory 管理
人工智能·深度学习·算法·语言模型·自然语言处理·面试·nlp