leetcode_rust/
pascal_triangle_2.rs1#![allow(dead_code)]
2
3pub fn get_row(mut row_index: i32) -> Vec<i32> {
4 row_index += 1;
5 if row_index == 1 {
6 return vec![1];
7 }
8 let mut res = vec![1];
9 let row_index = row_index as usize;
10 for i in 1..row_index {
11 for j in (1..=i).rev() {
12 if j == i {
13 res.push(1);
14 } else {
15 let sum = res[j - 1] + res[j];
16 res[j] = 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!(get_row(0), vec![1]);
31 assert_eq!(get_row(1), vec![1, 1]);
32 assert_eq!(get_row(2), vec![1, 2, 1]);
33 assert_eq!(get_row(3), vec![1, 3, 3, 1]);
34 }
35}