leetcode_rust/
pascal_triangle.rs

1#![allow(dead_code)]
2
3pub fn generate(num_rows: i32) -> Vec<Vec<i32>> {
4    if num_rows == 1 {
5        return vec![vec![1]];
6    }
7    let mut res = vec![vec![1]];
8    let num_rows = num_rows as usize;
9    res.resize(num_rows, vec![]);
10    for i in 1..num_rows {
11        for j in 0..=i {
12            if j == 0 || j == i {
13                res[i].push(1);
14            } else {
15                let sum = res[i - 1][j - 1] + res[i - 1][j];
16                res[i].push(sum);
17            }
18        }
19    }
20
21    res
22}
23
24#[cfg(test)]
25mod tests {
26    use super::*;
27
28    #[test]
29    fn test1() {
30        assert_eq!(
31            generate(4),
32            vec![vec![1], vec![1, 1], vec![1, 2, 1], vec![1, 3, 3, 1]]
33        );
34    }
35}