118. Pascal's Triangle

来源:互联网 发布:写英语论文的软件 编辑:程序博客网 时间:2024/04/25 04:22

题目:

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,
Return

[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]]
题意:

给出层数,生成杨辉三角。


思路:逐层生成

代码:

C++版:4ms

class Solution {public:    vector<vector<int>> generate(int numRows) {                vector<vector<int>> result(numRows);                for(int i=0; i<numRows; i++){            result[i].resize(i+1);            result[i][0] = result[i][i] = 1;                        for(int j=1; j<i; j++){                result[i][j] = result[i-1][j-1] + result[i-1][j];            }        }        return result;    }};
class Solution {  //0mspublic:    vector<vector<int>> generate(int numRows) {                vector<vector<int>> result;                for(auto i=0; i<numRows; ++i){            result.push_back(vector<int>(i+1, 1));                        for(auto j=1; j<i; ++j){                result[i][j] = result[i-1][j-1] + result[i-1][j];            }        }                return result;    }};
java版

public class Solution {    public List<List<Integer>> generate(int numRows) {                List<List<Integer>> result = new ArrayList<List<Integer>>();        List<Integer> row = new ArrayList<Integer>();                for(int i=0; i<numRows; i++){            row.add(0, 1);            for(int j=1; j<row.size()-1; j++){                row.set(j, row.get(j)+row.get(j+1));            }                        result.add(new ArrayList<Integer>(row));        }                return result;    }}

0 0
原创粉丝点击