LeetCode -- 帕斯卡三角形

问题描述:
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]
]

相信很多人已经熟悉了帕斯卡三角形是什么,这里简单介绍一下:
-有N个数组
-第N个数组有N项
-第N个数组的第K项=第N-1个数组的第K-1和第K项之和(K!=1 && K <N)
-每个数组的第1和最后1项均为1

了解定义后,直接实现就可以了:

public IList<IList<int>> Generate(int numRows) {

        var result = new List<IList<int>>();
        if(numRows == 0){
            return result;
        }

        result.Add(new List<int>(){1});
        if(numRows == 1){
            return result;
        }

        result.Add(new List<int>(){1,1});
        if(numRows == 2){
            return result;
        }

        for(var i = 2;i < numRows; i++){
            var newRow = new List<int>(){1}; // first item always 1
            for(var j = 0;j < result[i-1].Count - 1; j++){
                newRow.Add(result[i-1][j] + result[i-1][j+1]);
            }
            newRow.Add(1);// last item always 1
            result.Add(newRow);
        }

        return result;
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 19:23:56

LeetCode -- 帕斯卡三角形的相关文章

LeetCode 119 Pascal&#39;s Triangle II(帕斯卡三角形II)(vector、数学公式)(*)

翻译 给定一个索引K,返回帕斯卡三角形的第K行. 例如,给定K=3, 返回[1,3,3,1]. 注释: 你可以改进你的算法只用O(k)的额外空间吗? 原文 Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3,3,1]. Note: Could you optimize your algorithm to use only O(k) extra sp

LeetCode:Pascal‘s Triangle II - 帕斯卡三角形2

1.题目名称 Pascal's Triangle II(帕斯卡三角形2) 2.题目地址 https://leetcode.com/problems/pascals-triangle-ii/ 3.题目内容 英文:Given an index k, return the kth row of the Pascal's triangle. 中文:给出行数k,返回帕斯卡三角形的第k行 例如,k=3时,返回[1,3,3,1] 4.解题方法1 帕斯卡三角形也叫杨辉三角形,在LeetCode第118题(Pas

LeetCode:Pascal‘s Triangle - 帕斯卡三角形

1.题目名称 Pascal's Triangle(帕斯卡三角形) 2.题目地址 https://leetcode.com/problems/pascals-triangle/ 3.题目内容 英文:Given numRows, generate the first numRows of Pascal's triangle. 中文:给出行数numRows,生成前numRows行的帕斯卡三角形 例如,当numRows为5时,生成的三角形是这样的: [      [1],     [1,1],    [

119 Pascal&#39;s Triangle II 帕斯卡三角形 II Pascal&#39;s Triangle II

给定一个索引 k,返回帕斯卡三角形(杨辉三角)的第 k 行.例如,给定 k = 3,则返回 [1, 3, 3, 1].注:你可以优化你的算法到 O(k) 的空间复杂度吗?详见:https://leetcode.com/problems/pascals-triangle-ii/description/ class Solution { public: vector<int> getRow(int rowIndex) { vector<int> res(rowIndex+1); res

118 Pascal&#39;s Triangle 帕斯卡三角形

给定 numRows, 生成帕斯卡三角形的前 numRows 行.例如, 给定 numRows = 5,返回[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]]详见:https://leetcode.com/problems/pascals-triangle/description/ class Solution { public: vector<vector<int>> generate(int numRows) { v

java实现打印杨辉三角形(帕斯卡三角形),打印10行

/**  * 打印杨辉三角形(帕斯卡三角形),打印10行  *  */ public class Yanghuisanjiao {     public static void main(String[] args) {         int [][] a = new int[11][11];         for (int i = 0 ; i < 10 ; i++) {             a[i][0] = 1;             a[i][i] = 1;         }

【LeetCode-面试算法经典-Java实现】【118-Pascal&#39;s Triangle(帕斯卡三角形)】

[118-Pascal's Triangle(帕斯卡三角形(杨辉三角))] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 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] ] 题目大意 给定一个正整数n,求n层帕斯卡三角形

【LeetCode-面试算法经典-Java实现】【119-Pascal&#39;s Triangle II(帕斯卡三角形(杨辉三角)II)】

[119-Pascal's Triangle II(帕斯卡三角形(杨辉三角)II)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3,3,1]. Note: Could you optimize your algorithm to use only O(k) extra

Leetcode:Triangle 三角形塔最小路径和

Triangle: Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For example, given the following triangle [ [2], [3,4], [6,5,7], [4,1,8,3] ] The minimum path sum from top to botto