《剑指offer》刷题笔记(递归和循环):跳台阶
来源:互联网 发布:数据质量维度有效性 编辑:程序博客网 时间:2024/06/13 17:18
《剑指offer》刷题笔记(递归和循环):跳台阶
- 转载请注明作者和出处:http://blog.csdn.net/u011475210
- 代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
- 刷题平台:https://www.nowcoder.com/
- 题 库:剑指offer
- 编 者:WordZzzz
- 剑指offer刷题笔记递归和循环跳台阶
- 题目描述
- 解题思路
- C版代码实现
- 递归
- 循环
- Python 代码实现
- 递归
- 循环
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路:
对于n级台阶,第一步有2种跳法:跳1级、跳2级;
跳1级,剩下n-1级,则剩下跳法是f(n-1)
跳2级,剩下n-2级,则剩下跳法是f(n-2)
所以f(n)=f(n-1)+f(n-2)。
实现f(n)=f(n-1)+f(n-2)的方法有很多种,递归、循环都可以。
C++版代码实现:
递归:
class Solution {public: int jumpFloor(int number) { if(number <= 0) return 0; else if(number < 3) return number; else return jumpFloor(number-1)+jumpFloor(number-2); }};
循环:
class Solution {public: int jumpFloor(int number) { if(number <= 0) return 0; else if(number < 3) return number; int first = 1, second = 2, third = 0; for (int i = 3; i <= number; i++) { third = first + second; first = second; second = third; } return third; }};
Python 代码实现:
递归:
# -*- coding:utf-8 -*-class Solution: def jumpFloor(self, number): # write code here if number <= 0: return 0 elif number < 3: return number else: return self.jumpFloor(number-1) + self.jumpFloor(number-2)
循环:
# -*- coding:utf-8 -*-class Solution: def jumpFloor(self, number): # write code here if number <= 0: return 0 elif number < 3: return number first = 1 second = 2 third = 0 for i in range(3,number+1): third = first + second first = second second = third return third;
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz
阅读全文
0 0
- 《剑指offer》刷题笔记(递归和循环):变态跳台阶
- 《剑指offer》刷题笔记(递归和循环):跳台阶
- 剑指offer 9题 【递归和循环】 跳台阶
- 剑指offer:跳台阶(循环和递归)
- 《剑指Offer》递归和循环——跳台阶
- 剑指offer:(9)递归和循环:变态跳台阶
- 剑指offer: 变态跳台阶(循环与递归)
- 剑指offer--跳台阶(递归问题)
- 跳台阶(递归 循环)
- 《剑指offer》刷题笔记(递归和循环):矩形覆盖
- 《剑指offer》刷题笔记(递归和循环):斐波那契数列
- 剑指offer--变态跳台阶(巧用递归)
- 剑指offer_递归与循环---跳台阶
- 变态跳台阶(递归 循环)
- 剑指offer第八题(跳台阶)
- 剑指offer-递归和循环
- 【练习笔记】剑指offer-变态跳台阶
- 剑指offer-跳台阶
- mfc 得到在字符串在屏幕上的长度
- <Notepad++>FingerText插件创建自己的代码块
- 用Swing开发GUI程序(五)JScrollpane
- 二叉树递归,非递归遍历二叉树
- 简单排序算法汇总(算法四版)
- 《剑指offer》刷题笔记(递归和循环):跳台阶
- RecyclerView的滚动事件分析
- 转载: Java ConcurrentModificationException异常原因和解决方法
- MYSQL创建用户与授权
- 为什么java的构造方法中this()或者super()要放在第一行
- Gabage Collection (GC)
- 统计汉字,字母,数字等字符
- JavaScript从入门到放弃(三)
- 深度学习中的欠拟合和过拟合简介