力扣(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,ret[i][j]的位置是上一行同下标位置的值和前一个值相加。

最终代码:

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;

赶紧动起手来吧!!!

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

相关推荐
灵感__idea5 小时前
Hello 算法:贪心的世界
前端·javascript·算法
澈2076 小时前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法
A.A呐6 小时前
【C++第二十九章】IO流
开发语言·c++
ambition202426 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
cmpxr_6 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
qiqsevenqiqiqiqi6 小时前
前缀和差分
算法·图论
代码旅人ing7 小时前
链表算法刷题指南
数据结构·算法·链表
kebeiovo7 小时前
atomic原子操作实现无锁队列
服务器·c++
Yungoal7 小时前
常见 时间复杂度计算
c++·算法
6Hzlia7 小时前
【Hot 100 刷题计划】 LeetCode 48. 旋转图像 | C++ 矩阵变换题解
c++·leetcode·矩阵