rustgym/leetcode/
_118_pascal_triangle.rs

1struct Solution;
2
3impl Solution {
4    fn generate(nums_rows: i32) -> Vec<Vec<i32>> {
5        let mut res: Vec<Vec<i32>> = vec![];
6        for i in 0..nums_rows {
7            let ui = i as usize;
8            res.push(vec![]);
9            for j in 0..=i {
10                let uj = j as usize;
11                if j == 0 || j == i {
12                    res[ui].push(1);
13                } else {
14                    let prev = &res[ui - 1];
15                    let sum = prev[uj - 1] + prev[uj];
16                    res[ui].push(sum);
17                }
18            }
19        }
20        res
21    }
22}
23
24#[test]
25fn test() {
26    let triangle_5 = vec![
27        vec![1],
28        vec![1, 1],
29        vec![1, 2, 1],
30        vec![1, 3, 3, 1],
31        vec![1, 4, 6, 4, 1],
32    ];
33    assert_eq!(Solution::generate(5), triangle_5);
34}