leetcode_rust/
pascal_triangle_2.rs

1#![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}