前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >杨辉三角 C++

杨辉三角 C++

作者头像
叶茂林
发布2023-07-30 10:58:28
1700
发布2023-07-30 10:58:28
举报
文章被收录于专栏:叶子的开发者社区

题目描述

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

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

示例 1:

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

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

提示:

1 <= numRows <= 30

AC代码

代码语言:javascript
复制
class Solution {
public:
    vector<vector<int>> generate(int numRows) {
    	vector<vector<int>>temp;
    	temp.resize(numRows);
    	for(int i=0;i<numRows;i++){
			temp[i].resize(i+1);
			temp[i][0]=temp[i][i]=1;
		}
		for(int i=0;i<numRows;i++)
		for(int j=0;j<temp[i].size();j++)if(temp[i][j]==0)temp[i][j]=temp[i-1][j]+temp[i-1][j-1];
		return temp;   
    }
};

思路分析

如果没有vector的话,单单用指针开辟内存就会比较复杂一点,有了vector,构造这个三角形内存就比较方便。

所以先构造三角形出来,然后在两边赋值为1,其他的就会默认为0。

遍历找为0的元素,把它头上两个的和赋值给它,完事@_@。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • AC代码
  • 思路分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档