rustgym/leetcode/
_118_pascal_triangle.rs1struct 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}