当前位置: 首页 > article >正文

使用vector构造杨辉三角形

力扣118题:

给定一个非负整数 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

#include<iostream>
#include<vector>
using namespace std;

class Solution
{
public:
	void generate(int numRows)
	{
		vector<vector<int>> vv;     //类似于二维数组
		vv.resize(numRows);
    /*开辟numRows个空间,也就相当于开辟了numRows行。这里注意不要用reserve函数,因为该函数没办法初始化*/
		for (int i = 0; i < numRows; i++)
		{
			vv[i].resize(i + 1, 0);   /*下三角矩阵,第一行对应一列,第二行对应两列......并且都初始化为0*/
			vv[i][0] = vv[i][vv[i].size() - 1] = 1;   /*将每行的第一个与最后一个都赋值为1*/
		}
		for (int i = 0; i < vv.size(); i++)
		{
			for (int j = 0; j < vv[i].size(); j++)
			{
				if (vv[i][j] == 0)   /*这里只有三角形内部为0*/
				{
					vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];
				}
			}
		}
		for (auto& e : vv)            //用范围for打印出杨辉三角形
		{
			for (int& num : e)
			{
				cout << num << ' ';
			}
			cout << endl;
		}
			
	}
};

int main()
{
	int numRows;
	cin >> numRows;
	Solution s1;            //创建对象
	s1.generate(numRows);   //调用函数
}

验证一下:

 在力扣也验证一下:


http://www.kler.cn/a/600949.html

相关文章:

  • vcd波形转仿真激励
  • 银行分布式新核心的部署架构(两地三中心)
  • 桑福德·韦尔策划美国捷运公司收购南美银行案例分析
  • 光学像差的类型与消除方法
  • DeepSeek-V3 模型更新,加量不加价
  • 【WebGIS教程2】Web服务与地理空间服务解析
  • 基于 PHP 内置类及函数的免杀 WebShell
  • 期权交易投资怎么操作?新手期权操作指南
  • 多模态大模型的基础模块
  • 稳定运行的以Neo4j图数据库为数据源和目标的ETL性能变差时提高性能方法和步骤
  • Web1.0、Web2.0、Web3.0:互联网进化之旅
  • Rviz 同时显示多个独立 URDF!解决双机械臂+底盘等场景(球体+方块实例演示)
  • 短期趋势动量策略思路
  • Git 命令大全,详解
  • 前端框架入门:Angular
  • 微信小程序面试内容整理-如何处理小程序的缓存管理?
  • Linux安装MySQL数据库并使用C语言进行数据库开发
  • 第30周Java分布式入门 线程池
  • 23种设计模式-命令(Command)设计模式
  • SpringBoot+JPA适配人大金仓