zoukankan      html  css  js  c++  java
  • 算法疑难(js实现)---5、变态跳台阶

    算法疑难(js实现)---5、变态跳台阶

    一、总结

    一句话总结:

    变态跳台阶的递推表达式咋一眼看不是很好写出,我们可以多枚举几个例子,通过例子找规律,从而总结出f(n)
    let cache=[,1,2];
    function jumpFloor(n) {
        if(cache[n]!==undefined) return cache[n];
        //计算f(n)并返回
        cache[n]=1;
        for (let i=n-1;i>=1;i--){
            cache[n]+=jumpFloor(i);
        }
        return cache[n];
    }

    1、找递推表达式常见的两种方式?

    1、直接找出f(n)(f(n)的关系非常明显的情况下)
    2、多枚举几个例子,通过例子找规律,从而总结出f(n)

    二、变态跳台阶

    博客对应课程的视频位置:5、变态跳台阶
    https://www.fanrenyi.com/video/20/241

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>变态跳台阶</title>
     6 </head>
     7 <body>
     8 <!--
     9 需求:
    10 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
    11 求该青蛙跳上一个n级的台阶总共有多少种跳法。
    12 
    13 f(n)来表示青蛙跳上一个n级的台阶跳法种数
    14 
    15 f(n)
    16 
    17 多枚举几个例子,找规律,
    18 f(1)=1
    19 f(2)=2
    20 f(3)=f(2)+f(1)+1
    21 f(4)=f(3)+f(2)+f(1)+1
    22 f(5)=f(4)+f(3)+f(2)+f(1)+1
    23 ...
    24 f(n)=f(n-1)+f(n-2)+...+f(2)+f(1)+1
    25 
    26 -->
    27 <script>
    28     let cache=[,1,2];
    29     function jumpFloor(n) {
    30         if(cache[n]!==undefined) return cache[n];
    31         //计算f(n)并返回
    32         cache[n]=1;
    33         for (let i=n-1;i>=1;i--){
    34             cache[n]+=jumpFloor(i);
    35         }
    36         return cache[n];
    37     }
    38 
    39     console.log(jumpFloor(10));
    40     console.log(cache);
    41 </script>
    42 </body>
    43 </html>
  • 相关阅读:
    mogodb 设置用户名密码认证
    axon mogoconfig
    ListUtils 对 list数据 分组 ,统计,求和 。。。
    jQuery 之 dom操作
    学习Java第二天
    字节跳动spring面试题,你能回答出几个
    CH340芯片选型
    Django的路由转换器的使用
    Vue之cli脚手架
    String中split(regex,limit)方法讲解
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12916331.html
Copyright © 2011-2022 走看看