LeetCode--剑指offer 1137题 第 N 个泰波那契数
一、搜题原因:
这个题目说起来有点意思 我本来是搜索的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 个泰波那契数相关推荐
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /** * Definition for a binary tree no ...
- 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...
- 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...
- 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...
- 【LeetCode 剑指offer刷题】回溯法与暴力枚举法题6:Number of Islands
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Number of Islands Given a 2d grid map of '1's (land) and ' ...
- 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...
- 【LeetCode 剑指offer刷题】查找与排序题12:Top K Frequent Elements
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Top K Frequent Elements Given a non-empty array of integer ...
- 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...
- 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...
最新文章
- linux监控平台搭建-内存
- [转]数据库性能优化(老Key)
- 【转】c++重载、覆盖、隐藏——理不清的区别
- Objective-C中的Block
- 【Linux系统编程】进程同步与互斥:System V 信号量
- C语言中include““与include<>的区别(自定义头文件、预设头文件)
- C#判断闰年函数及举例
- 程序员的搞笑日常:写给1024的程序员们,现在的你们还在加班吗?
- 微课--25分钟学会使用Python群发电子邮件
- mysql mod如何使用_mysql 操作详解
- DateTime相关知识
- #1829 : Tomb Raider(哈希)
- MySQL8.0局域网共享
- 基于DTU的工业控制组网方案
- 如何添加RichFaces 3.3.x到Maven项目
- 为Exynos4412移植U-Boot-2017.11的步骤(一)——让U-Boot跑起来
- python云盘私有云_GitHub - 0x2642/Umi-Chest: 一个基于python的私有云实验项目
- 7-5 先序序列+中序序列建立二叉树
- C语言图书馆如何添加图书,如何使用C语言编写图书馆管理系统?
- Vue环境配置时报npm WARN deprecated bfj-node4@5.3.1: Switch to the `bfj` package for fixes and new features
热门文章
- Python中公共方法
- 安卓读取蓝牙BLE设备信息
- 加速度计/磁传感器/陀螺仪
- Pandas-Numpy-Matplotlib-PyEcharts——综合案例(豆瓣电影Top_250数据分析)
- 电路设计_锂电池充放电特性
- html 栏目切换幻灯片效果,很酷的切换效果 纯CSS3幻灯片实现
- iOS UIKeyboardType(键盘类型)~图解
- MT6757_MT6763芯片平台技术资料下载
- 开始使用Elasticsearch (1): 如何创建index,添加、删除、更新文档
- 做宽带直流放大器时,采用ADI公司的两个压控增益放大器AD603级联时,消除其直流偏移,参考的运放应用输入端的调零电路...