我是靠谱客的博主 心灵美月亮,这篇文章主要介绍Go语言实现:【剑指offer】跳台阶,现在分享给大家,希望可以做个参考。

该题目来源于牛客网《剑指offer》专题。

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

1阶:共1种跳法;

2阶:共2种跳法;

3阶:共3种跳法;

n阶:先跳1级,还剩n-1级,跳法是f(n-1);先跳2级,还剩n-2级,跳法是f(n-2),共f(n-1)+f(n-2)种跳法;
得出一个斐波那契函数。

Go语言实现:

方法一:递归

func jumpFloor(N int) int {
  if N <= 0 {
    return 0
  }if N == 1 || N == 2 {
    return N
  }return jumpFloor(N-1) + jumpFloor(N-2)
}

方法二:迭代

func jumpFloor(N int) int {
  if N <= 0 {
    return 0
  }if N == 1 || N == 2 {
    return N
  }
​
  a, b := 1, 2
  for i := 3; i <= N; i++ {
    a, b = b, a+b
  }
  return b
}

最后

以上就是心灵美月亮最近收集整理的关于Go语言实现:【剑指offer】跳台阶的全部内容,更多相关Go语言实现内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(104)

评论列表共有 0 条评论

立即
投稿
返回
顶部