您的位置:首页 > 其它

118. Pascal's Triangle

2016-05-07 21:05 253 查看
题目:

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 {  //0ms
public:
    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;
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: