杨辉三角 II

杨辉三角 II

CategoryDifficultyLikesDislikes
algorithmsEasy (68.92%)502-
Tags

array

Companies

amazon

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。

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

示例 1:

1
2
输入: rowIndex = 3
输出: [1,3,3,1]

示例 2:

1
2
输入: rowIndex = 0
输出: [1]

示例 3:

1
2
输入: rowIndex = 1
输出: [1,1]

提示:

  • 0 <= rowIndex <= 33

进阶:

你可以优化你的算法到 <em>O</em>(<i>rowIndex</i>) 空间复杂度吗?

Discussion | Solution

解法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
struct Solution;

// @lc code=start
impl Solution {
    /// ## 解题思路
    /// - 递归
    pub fn get_row(row_index: i32) -> Vec<i32> {
        use std::iter;

        match row_index {
            0 => vec![1],
            i => iter::once(1)
                .chain(Solution::get_row(i - 1).windows(2).map(|w| w.iter().sum()))
                .chain(iter::once(1))
                .collect::<Vec<_>>(),
        }
    }
}
// @lc code=end

updatedupdated2024-08-252024-08-25