leetcode_rust/
pascal_triangle.rs1#![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}