一、搜题原因:
这个题目说起来有点意思 我本来是搜索的dfs的专题然后leetcode的后台给我呈现了这样一个题目 话不多说 上题:


2.题目分析:

这个题目是说的泰伯那切数列 , 要求给出一个整数n , 要求返回一个第n个数列的值 ; 看到题目 首先不应该考虑算法问题 , 首先应该是要可以把这个题目解出来 然后在考虑算法优化 现在就听听我的分析 :

   1.首先分析测试用例:T3 = 0 + 1 + 1  ---->  2=  t0 + t1+ t2----> 2 ;lT4 = 1 + 1 + 2 ------> 4= t1 + t2 + t3 --------> 4 ; 这不难看出一个规律 :要求项 = 该项的前三项数字之和 ; 2.考虑要使用的数据结构:这里我想都没想  直接使用栈结构  原因就是它的特性:FIFO 能够狠好的拿到我想要的元素3.考虑细节:这里的循环项应该是从第三项开始的 ; (这是一个小细节哦)

3.核心代码:

分析完毕了 来上核心代码 :

   static  void TBBQ(int n ){int sum = 0 ;//保存上一次结果 和 最终结果的变量Stack<Integer> stack =new Stack() ;//栈结构/*stack.push(0) ;stack.push(1) ;stack.push(1);注意: 所有遍历的数前三项是不变的 所以需要提前把前三项入栈*/stack.push(0) ;stack.push(1) ;stack.push(1);if (n == 0 || n ==1 || n==2){System.out.println(stack.elementAt(n));}for (int i = 3 ; i <=n ; i++){sum = stack.peek()+stack.elementAt(stack.size()-2)+stack.elementAt(stack.size()-3);stack.push(sum);}System.out.println(sum);}

4.最终代码:

import java.util.Stack;public class 泰伯那切数列 {public static void main(String[] args) {int n = 25 ;TBBQ(n); ;}static  void TBBQ(int n ){int sum = 0 ;Stack<Integer> stack =new Stack() ;stack.push(0) ;stack.push(1) ;stack.push(1);if (n == 0 || n ==1 || n==2){System.out.println(stack.elementAt(n));}for (int i = 3 ; i <=n ; i++){sum = stack.peek() + stack.elementAt(stack.size()-2)+stack.elementAt(stack.size()-3);stack.push(sum);}System.out.println(sum);}
}

LeetCode--剑指offer 1137题 第 N 个泰波那契数相关推荐

  1. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  2. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  3. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

  4. 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...

  5. 【LeetCode 剑指offer刷题】回溯法与暴力枚举法题6:Number of Islands

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Number of Islands Given a 2d grid map of '1's (land) and ' ...

  6. 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...

  7. 【LeetCode 剑指offer刷题】查找与排序题12:Top K Frequent Elements

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Top K Frequent Elements Given a non-empty array of integer ...

  8. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...

  9. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

最新文章

  1. linux监控平台搭建-内存
  2. [转]数据库性能优化(老Key)
  3. 【转】c++重载、覆盖、隐藏——理不清的区别
  4. Objective-C中的Block
  5. 【Linux系统编程】进程同步与互斥:System V 信号量
  6. C语言中include““与include<>的区别(自定义头文件、预设头文件)
  7. C#判断闰年函数及举例
  8. 程序员的搞笑日常:写给1024的程序员们,现在的你们还在加班吗?
  9. 微课--25分钟学会使用Python群发电子邮件
  10. mysql mod如何使用_mysql 操作详解
  11. DateTime相关知识
  12. #1829 : Tomb Raider(哈希)
  13. MySQL8.0局域网共享
  14. 基于DTU的工业控制组网方案
  15. 如何添加RichFaces 3.3.x到Maven项目
  16. 为Exynos4412移植U-Boot-2017.11的步骤(一)——让U-Boot跑起来
  17. python云盘私有云_GitHub - 0x2642/Umi-Chest: 一个基于python的私有云实验项目
  18. 7-5 先序序列+中序序列建立二叉树
  19. C语言图书馆如何添加图书,如何使用C语言编写图书馆管理系统?
  20. Vue环境配置时报npm WARN deprecated bfj-node4@5.3.1: Switch to the `bfj` package for fixes and new features

热门文章

  1. Python中公共方法
  2. 安卓读取蓝牙BLE设备信息
  3. 加速度计/磁传感器/陀螺仪
  4. Pandas-Numpy-Matplotlib-PyEcharts——综合案例(豆瓣电影Top_250数据分析)
  5. 电路设计_锂电池充放电特性
  6. html 栏目切换幻灯片效果,很酷的切换效果 纯CSS3幻灯片实现
  7. iOS UIKeyboardType(键盘类型)~图解
  8. MT6757_MT6763芯片平台技术资料下载
  9. 开始使用Elasticsearch (1): 如何创建index,添加、删除、更新文档
  10. 做宽带直流放大器时,采用ADI公司的两个压控增益放大器AD603级联时,消除其直流偏移,参考的运放应用输入端的调零电路...