问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

子问题

  • n = 1,只有一种方式
  • n = i,先吧a(i) = a(i-1)+a(i-2)

    状态确认

    a(i) = a(i-2)+2

动态规划实现

fun fib3(n: Int): Int {
        if (n ==0) {
            return 0
        }
        else if (n == 1) {
            return 1
        }
        val array = IntArray(n+1)
        array[0] = 0
        array[1] = 1

        for(i in 2..n){
            array[i] = (array[i-1]+array[i-2])%1000000007

//            AppLog.i("i:$i,arr:${array[i]}")
        }
        return array[n]
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注