我是靠谱客的博主 秀丽机器猫,最近开发中收集的这篇文章主要介绍【LeetCode】剑指 Offer(4)写在前面:题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode) 小总结:写在最后:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

写在前面:

题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

 小总结:

写在最后:


写在前面:

军训好累,没话说了。

题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    int fib(int n) {

    }
};

解题思路:

直接根据斐波那契数列的特性,

写一个循环即可。

代码:

class Solution {
public:
    int fib(int n) {
        //设置f1和f2两个变量作为计算数列下一个数的前两个数
        int f1 = 0;
        int f2 = 1;

        //这是题目的要求,我们利用一下,这样整形变量的大小就够用
        int m = (1e9 + 7);

        //这是第一个数和第二个数的情况
        if(n == 0)
        {
            return 0;
        }
        if(n == 1)
        {
            return 1;
        }

        int ret = 0;

        //写一个循环,根据斐波那锲数列规则计算下一个值
        for(int i = 0;i<n-1;i++)
        {
            //按题目要求取模
            ret = (f1 + f2) % m;
            f1 = f2;
            f2 = ret;
        }
        return ret;
    }
};

过啦!!!

循环就是比递归快,时间超过100%了。

题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    int numWays(int n) {

    }
};

解题思路:

这道题一开始看的时候我是有点懵的,

然后我就算了一下条几级台阶会有几种方法,

0级台阶1种方法;(题目给了个示例)

1级台阶1种方法;

2级台阶2种方法;

3级台阶3种方法;

(如果先跳1级,就变成2级台阶的跳法;先跳2级,就变成1级台阶的跳法)

1 + 2 就等于3种方法。

4级台阶5种方法。

(如果先跳1级,就变成3级台阶的跳法;先跳2级,就变成2级台阶的跳法)

3 + 2 就等于5种方法。

这时,我们惊喜的发现,这不就是一个斐波那契数列吗,

我当场复用上一段代码。(记得要注意细节)

代码:

class Solution {
public:
    int numWays(int n) {
        //设置f1和f2两个变量作为计算数列下一个数的前两个数
        int f1 = 1;//记得改一下细节
        int f2 = 1;

        //这是题目的要求,我们利用一下,这样整形变量的大小就够用
        int m = (1e9 + 7);

        //这是第一个数和第二个数的情况
        if(n == 0)
        {
            return 1;//记得改一下细节
        }
        if(n == 1)
        {
            return 1;
        }

        int ret = 0;

        //写一个循环,根据斐波那锲数列规则计算下一个值
        for(int i = 0;i<n-1;i++)
        {
            //按题目要求取模
            ret = (f1 + f2) % m;
            f1 = f2;
            f2 = ret;
        }
        return ret;
    }
};

过啦!!!

 小总结:

刷题的意义之一,

其实就是当我们再次遇到类似的题目的时候,

我们能比别人更加容易想到更好的思路,就像这两道题目一样。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

最后

以上就是秀丽机器猫为你收集整理的【LeetCode】剑指 Offer(4)写在前面:题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode) 小总结:写在最后:的全部内容,希望文章能够帮你解决【LeetCode】剑指 Offer(4)写在前面:题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode) 小总结:写在最后:所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部