这段时间一直没怎么接触算法,昨天看到一个关于动态规划的题想到斐波那契数列。想到了那不是很好解决吗。但是如果你不知道这种规律性的东西是不是代表你不能解决这个问题?当然不是。事实上你甚至可以自己真的去台阶上试试。。。。哈哈,这道题是20个台阶每次一步或者两步。看来自己走是不行了

于是我们就要开发一个自己会走的程序,我们需要模拟每一步。第一步是走 1 或者走 2 ,所以第二步就是19 18 在第一步基础上我们需要再来19 18 部  ,然而第二步 在19基础上就是18 17 在18基础上就是17 16 。由此可见下一步的可能性是在上一步的基础 翻倍,当然是有条件的,就是剩下的不能为负数。写到这里我想大家心里应该有数了。但是还有个问题,我们怎么让机器人停下来,换句话来说就是怎么知道是最后一步。一千米比赛 ,我们怎么知道比赛结束了?当然是最后一名冲过终点,所以应该是每次一阶结束时候就是第20步。所以程序就很简单了。所以上台阶模拟器就开发完成了。

class Calc{constructor(){this.way=[]this.step=1this.status=null}run(){if(this.status!=='over'){this.nextStep()return this.run()}else{return this.way}}
nextStep(){  if(this.step==1){this.way.push({step:this.step,way:[1,2],num:[20-1,20-2]})}else{if(this.step==21){this.status='over'}else{let tmp=[]for(var i=0;i<=this.way[this.step-2].num.length;i++){if(this.way[this.step-2].num[i]-1>=0){tmp.push(this.way[this.step-2].num[i]-1)}if(this.way[this.step-2].num[i]-2>=0){tmp.push(this.way[this.step-2].num[i]-2)}}this.way.push({step:this.step,way:[1,2],num:tmp})}}this.step+=1}}

js台阶算法问题(上台阶模拟器)相关推荐

  1. js排序算法详解-归并排序

    js系列教程5-数据结构和算法全解 js排序算法详解-归并排序 归并排序其实可以类比二分法,二分法其实就是二等分的意思,简而言之就是不断和新序列的中间值进行比较.归并排序似乎有异曲同工之妙,什么意思呢 ...

  2. js排序算法详解-基数排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-基数排序 其实基数排序和桶排序挺类似的,都是找一个容器把属于同一类的元素装起来,然后进行排序.可以把基数排序类 ...

  3. js排序算法详解-桶排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-桶排序 一看到这个名字就会觉得奇特,几个意思,我排序还要再准备几个桶不成?还真别说,想用桶排序还得真准备几个桶 ...

  4. js排序算法详解-计数排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-计数排序 计数排序就是遍历数组记录数组下的元素出现过多次,然后把这个元素找个位置先安置下来,简单点说就是以原数 ...

  5. js排序算法详解-堆排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-堆排序 这种排序方式呢,理论性太强,看动图的时候满脸写着懵逼,多看几遍似乎明白了编者的意图,但是要把这种理论的 ...

  6. js排序算法详解-快速排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-快速排序 既然是快速排序,那顾名思义一定很快,快的连小编都被懵逼了好几圈!建议先不要看动图,先看第一种写法: ...

  7. js排序算法详解-希尔排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-希尔排序 希尔排序,直接上图: 像这个算法看图理解起来并不是很难,就像比赛一样,1-6一组,2-7一组,每差5 ...

  8. js排序算法详解-选择排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-选择排序 相对于冒泡排序还有一种类似的方法就是选择排序,顾名思义就是选择性排序,什么意思呢? 这么来理解,假设 ...

  9. js排序算法详解-冒泡排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-冒泡排序 1.1 原始人冒泡排序 function bubbleSort(arr) {var len = ar ...

最新文章

  1. X@X.X域名转向的实现
  2. rn webview加载本地静态html,RNwebview加载本地html.htm
  3. redis持久化(2)
  4. 4、Python运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级(学些笔记)
  5. @ModelAttribute运用详解
  6. SQL Server 性能调优(方法论)
  7. 基于PCA和SVM的人脸识别
  8. 电脑老是提示虚拟内存不足的原因及解决办法
  9. 怎么保证读取最新数据_摄影师的数据存储有多难,怎么存储大量数据并保证安全高速防水防摔防尘?SanDisk...
  10. Linux下Qt的QPixmap加载图片无法显示的问题
  11. 请教大家一个问题,有关于数据库的设计
  12. MATLAB调用OpenCV流程(MATLAB R2016a+OpenCV3.1.0+VS2010
  13. 软件测试 vs 软件实施,哪个工作好?
  14. pdca管理循环基本主张_PDCA管理循环图怎么画?干货分享高颜值图形图表软件
  15. 怎么把腾讯视频qlv格式转换成为mp4视频(无需软件详细操作)
  16. dkp管理系统 php,RB!DKP v3.1.8 Build
  17. scala val 与var 区别
  18. 在PHP中如何使用Predis
  19. IOS 证书安装详解
  20. 密码字典大全(seclists)

热门文章

  1. APP应用渗透测试思路
  2. 基于imx8的成熟360全景方案 ,NVP6324+IMX8,N4+IMX8
  3. 小案例:实现http://www.alloyteam.com/page/0/移动端效果,博客文章列表和文章详情页面
  4. 如何成为一名合格的运筹优化算法工程师?
  5. python实现四种出行路线规划(公交、步行、驾车、骑行)
  6. 3个必看的常见问题解答页面示例,帮您重做产品FAQ页面F
  7. injectcheck php_PHP安全最大化
  8. 前端酷炫效果参考_纯CSS3实现的一些酷炫效果
  9. Java 超.简易RPG游戏
  10. TCP协议-TCP的拥塞控制