1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// 剑指 Offer 10- II. 青蛙跳台阶问题
/// <https://leetcode.cn/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/>

pub struct Solution;

#[allow(unused)]
impl Solution {
	pub fn num_ways(n: i32) -> i32 {
		if n == 0 || n == 1 {
			return 1
		}
		let mut dp = vec![0; n as usize + 1];
		dp[0] = 1;
		dp[1] = 1;
		for i in 2..=n {
			let i = i as usize;
			dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		}
		dp[n as usize]
	}
}

#[cfg(test)]
mod tests {
	use super::*;

	#[test]
	fn test() {
		assert_eq!(Solution::num_ways(2), 2);
	}
}