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

相关推荐
SpongeG30 分钟前
数据结构第三周做题总结_链表
数据结构·算法·链表
everyStudy31 分钟前
前端五种排序
前端·算法·排序算法
未来可期LJ2 小时前
【C++ 设计模式】单例模式的两种懒汉式和饿汉式
c++·单例模式·设计模式
Trouvaille ~2 小时前
【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略
c++·c++20·编译原理·编译器·类和对象·rvo·nrvo
little redcap2 小时前
第十九次CCF计算机软件能力认证-乔乔和牛牛逛超市
数据结构·c++·算法
机器视觉知识推荐、就业指导3 小时前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
muyierfly3 小时前
34.贪心算法1
算法·贪心算法
孤寂大仙v3 小时前
【C++】STL----list常见用法
开发语言·c++·list
咩咩大主教4 小时前
C++基于select和epoll的TCP服务器
linux·服务器·c语言·开发语言·c++·tcp/ip·io多路复用
luthane5 小时前
python 实现average mean平均数算法
开发语言·python·算法