leetcode 118. 杨辉三角(Pascal's Triangle)

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

《leetcode 118. 杨辉三角(Pascal's Triangle)》

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

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

 

 

class Solution {
    public List<List<Integer>> generate(int numRows) {
    	List<List<Integer>> ans = new ArrayList<>();
        int[] dp = new int[numRows+1];
        dp[0] = 1;
        for(int i=0;i<numRows;i++) {
        	for(int j=i;j>=1;j--) {
        		if(j==i)
        			dp[j]=1;
        		else
        			dp[j]=dp[j]+dp[j-1];
        	}
        	List<Integer> list = new ArrayList<>();
        	for(int j=0;j<=i;j++)
        		list.add(dp[j]);
        	ans.add(list);
        }
        
        return ans;
    }
}

 

 

 

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> triangle = new ArrayList<>();
        if (numRows < 1) return triangle;

        List<Integer> firstRow = new ArrayList<>();
        firstRow.add(1);
        triangle.add(firstRow);

        for (int rownum = 1; rownum < numRows; rownum++) {
            List<Integer> row = new ArrayList<>();
            List<Integer> prevRow = triangle.get(rownum - 1);

            row.add(1);
            for (int j = 1; j < rownum; j++) {
                row.add(prevRow.get(j - 1) + prevRow.get(j));
            }
            row.add(1);
            triangle.add(row);
        }
        return triangle;
    }
}

 

 

c++

 

 

class Solution 
{
    public:
    
    vector<vector<int>> generate(int numRows) 
    {
        vector<vector<int>> v1;
        
        vector<int> lastLine;
        
        for (int i = 1; i <= numRows; i++)
        {
            vector<int> v2;
            
            for (int j = 0; j < i; j++)
            {
                if (j == 0 || j == i - 1)
                {
                    v2.push_back(1);
                }
                else
                {
                    v2.push_back(lastLine[j - 1] + lastLine[j]);
                }
            }
            
            lastLine = v2;
            
            v1.push_back(v2);
        }
        
        return v1;
    }
};

 

    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/weixin_41793113/article/details/83591881
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞