美文网首页
要成功就做一百题-99

要成功就做一百题-99

作者: 西5d | 来源:发表于2020-04-07 23:28 被阅读0次

题目名称

爬楼梯问题,斐波拉契数列,泰波拉契数列

描述

第一个是常见的题目,第二个斐波拉契,第三个是斐波拉契的变种,只是参数变成了三个。这里只介绍非递归的方法。由于都是一种类型,解法相似,所以放到一起。

解题思路

都是典型的动态规划问题,每一步都依赖前面的两步或者三步,所以使用中间变量将之前的结果缓存起来,然后累加,得到最终的结果。

代码


    public int climbStairs(int n) {
        if (n <= 3) {
            return n;
        }

        int t2 = 2;
        int t3 = 3;
        int t= t3;
        for (int i = 4; i <= n; i++) {
            t = t2 + t3;
            t2 = t3;
            t3 = t;
        }
        return t;
    }

 public int tribonacci(int n) {
        if(n <= 1){
            return n;
        }

        if(n <= 3){
            return n - 1;
        }

        int x1 = 1,x2 = 1,x3 = 2;
        int t = x3;
        for(int i = 4; i <= n; i++){
            t =  x1 + x2 + x3;
            x1 = x2;
            x2 = x3;
            x3 = t;
        }
        return t;

    }
public int fib2(int n){
        if(n <= 1){
            return n;
        }
        if(n == 2){
            return 1;
        }

        int x1 = 1, x2 = 1;
        int t = 1;
        for(int i = 3; i<= n; i++){
            t = (x1 + x2) % 1000000007;
            x1 = x2;
            x2 = t;
        }
        return t;
    }

斐波拉契一直取到100位,这种情况下是超过了Long型的最大值的,所以这里用了取模操作,保持在整数位(都是加法,单次取模和结果取模是一致的);当然也可以用java的BigInteger实现,经验证效果一样。

总结

以上就是今天完成的题目,类型都很相似,总体复杂度不是很高,知晓一些套路之后,比较容易完成。感谢阅读~

相关文章

  • 要成功就做一百题-99

    题目名称 爬楼梯问题,斐波拉契数列,泰波拉契数列 描述 第一个是常见的题目,第二个斐波拉契,第三个是斐波拉契的变种...

  • 要成功就做一百题-90

    题目名称 第十三题 罗马数字转整数 描述 解题思路 这里做了个找规律,先把所有字符加起来,再处理特殊情况,题目说了...

  • 要成功就做一百题-89

    题目名称 实现字符串函数strStr() ,第28题 描述 解题思路 目的是找出某个字符串在另一个字符串的起始位置...

  • 要成功就做一百题-92

    题目名称 括号生成 描述 难度属于中等,目的是根据给定的括号数,生成有效的括号集合。 解题思路 这题比较有意思,这...

  • 要成功就做一百题-93

    题目名称 有效的括号判断 描述 输入的字符串只包含{ [] } ()三种括号的组合,判断输入是否是有效的括号,如下...

  • 要成功就做一百题-91

    题目名称 矩阵置零 描述 难度属于中等,如下是题目的描述,leetcode 73题。 解题思路 这里我也没用其他复...

  • 要成功就做一百题-98

    题目名称 二叉树的中序遍历 描述 给定一个先序遍历的二叉树,打印出其中序(中根)遍历的结构。 解题思路 首先是根据...

  • 要成功就做一百题-100

    题目有点唬人,当然要的就是这个效果,标题党一把。从现在开始做100道leetcode题目,为了起到比较好的督促作用...

  • 要成功就做一百题-97

    题目名称 今天来一个简单题目试试水,好久没发了。 一来遇到个复杂题,一时没解,二来最近实在有点忙。废话不多,开始正...

  • 要成功就做一百题-95

    题目名称 已经排序的数组,必须在O(logn)的复杂度下统计得到指定元素的重复次数。 描述 比如数组[1,1,2,...

网友评论

      本文标题:要成功就做一百题-99

      本文链接:https://www.haomeiwen.com/subject/jixaphtx.html