力扣(LeetCode) ——118.杨辉三角(C++)

题目:杨辉三角

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

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

示例1:

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

示例2:

输入: numRows = 1
输出: \[1]

解题思路:

需要写出二维的vector,创建vector<vector<int>>,初始化全为1,

定义两个循环i为行,j为列,前两行全为1,所以i从第二行开始小于numRows,j从第一行开始小于i,retij的位置是上一行同下标位置的值和前一个值相加。

最终代码:

cpp 复制代码
vector<vector<int>> generate(int numRows) {
    vector<vector<int>> ret(numRows);
    for(size_t i = 0;i< numRows;++i)//初始化为1
        ret[i].resize(i+1, 1);
    for(int i = 2;i < numRows;++i)
        for(int j =1;j < i; ++j)
            //上一行同下标位置的值和前一个值相加
            ret[i][j] = ret[i-1][j]+ ret[i-1][j-1];
    return ret;

赶紧动起手来吧!!!

点击下方即可跳转
杨辉三角

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛2 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车2 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
吞下星星的少年·-·2 天前
C++ 萌新语法入门篇
c++·算法比赛
Because_of_Her12 天前
并查集-听课笔记
笔记·算法·并查集