Leetcode 118 根据行数输出杨辉三角形
来源:互联网 发布:天天向上网络版权费 编辑:程序博客网 时间:2024/05/21 06:13
题意:给定总行数numrows,输出所有行的 杨辉三角形
题解:
0:1
1:1 1
2:1 2 1
3:1 3 3 1
4:1 4 6 4 1
5:1 5 10 10 5 1
我们知道a[i][j]=a[i-1][j]+a[i-1][j-1],那么我们可以按照顺序设计一个vector<vector<int>> 相当于二维数组,依次将数据更新完。
代码:
class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> r(numRows); if(numRows == 0) return r; r[0].push_back(1); for(int i = 1; i < numRows; i ++) { r[i].push_back(1); for(int j = 1; j < i; j ++) r[i].push_back(r[i-1].at(j-1) + r[i-1].at(j)); r[i].push_back(1); } return r; }};也可以按照上一篇的思路:
class Solution {public: vector<vector<int>> generate(int numRows) { vector<int> vec(numRows, 1); vector<vector<int>> vvec(numRows); int i = 0, j = 0; for (i = 1; i <= numRows;i++){ vvec[i-1]=(vector<int>(i)); } for (i = 0; i < numRows; i++){ vvec[i][0] = 1; } if(numRows==0||numRows==1){ return vvec; } vvec[1][1] = 1; for (i = 2; i < numRows; i++){ for (j = i; j>0; j--){ if (i == j || j == 0){ vec[j] = 1; } else{ vec[j] = vec[j] + vec[j - 1]; } vvec[i][j] = vec[j]; } } return vvec; }};
0 0
- Leetcode 118 根据行数输出杨辉三角形
- 输出杨辉三角形
- 输出“杨辉三角形”
- 输出杨辉三角形
- C#输出杨辉三角形
- 打印杨辉三角形(行数可以键盘输入)
- [leetcode]Pascal's Triangle II (杨辉三角形求输出第k行的值)
- 输出以下的杨辉三角形
- python输出杨辉三角形代码
- 输出杨辉三角形(要求输出10行)
- C++语言 输出杨辉三角形 要求输出10行。
- js实现输出杨辉三角中关键字的行数
- 键盘输入行数,打印三角形
- LeetCode-118:Pascal's Triangle (生成指定行数的杨辉三角)
- 根据用户输入三角形三边的边长,在计算并输出三角形的面积。
- java使用一维数组输出杨辉三角形
- C++输出上三角/下三角/菱形/杨辉三角形
- JAVA之利用数组输出杨辉三角形
- leetcode:Largest Number
- 超长字符串换行处理
- 03环信好友管理 - 添加好友(好友申请处理结果回调)
- leetcode:Happy Number
- 动态规划——DNA
- Leetcode 118 根据行数输出杨辉三角形
- uva10755 - Garbage Heap
- chmod 777修改文件系统权限
- leetcode:Implement Trie (Prefix Tree)
- Android:获取版本号
- 动态规划——小胖办证
- poj 2002 hash(平面上若干点能够成多少正方形)
- leetcode: Basic Calculator
- s3c2440时钟+nandflash拷贝至SDRAM+开启mmu