我是靠谱客的博主 心灵美月亮,最近开发中收集的这篇文章主要介绍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语言实现:【剑指offer】跳台阶所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部