上台阶-动态规划

有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。

给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。

测试样例:

3

返回:2

动态规划,从第三级开始,它的结果有第二级和第一级的结果相加得到,推广到一般,则任意n>=3的台阶,它的方法数:result[i]=result[i-1]+result[i-2];

import java.util.*;

public class GoUpstairs {
    public int countWays(int n) {
		if (n == 0) {
			return 0;
		}
		long[] result = new long[n + 1];
		result[0] = 0;
		result[1] = 1;
		for (int i = 2; i <= n; i++) {
			result[i] = result[i - 1] %1000000007+ result[i - 2]%1000000007;
		}
		return (int)(result[n] % 1000000007);
    }
} 

    原文作者:动态规划
    原文地址: https://blog.csdn.net/abc7845129630/article/details/51584957
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞