杨辉三角

杨辉三角

CategoryDifficultyLikesDislikes
algorithmsEasy (74.15%)708-

Tags

array

Companies

apple | twitter

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

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

示例 1:

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

示例  2:

1
2
输入: numRows = 1
输出: [[1]]

提示:

  • 1 <= numRows <= 30

Discussion | Solution

解法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
impl Solution {
    /// ## 解题思路
    /// * 循环通过
    pub fn generate(num_rows: i32) -> Vec<Vec<i32>> {
        let mut res = vec![vec![1_i32]];
        for i in 1..num_rows {
            let mut row = res.last()
                            .unwrap()
                            .windows(2)
                            .map(|x| x[0] + x[1])
                            .collect();
            res.push([&[1], row.as_slice(), &[1]].concat());
        }
        res
    }
}
updatedupdated2024-08-252024-08-25