Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ae6f9cd

Browse files
Merge pull request MisterBooo#81 from xiaoshuai96/master
solved @xiaoshuai96
2 parents 89f0488 + c3dff2f commit ae6f9cd

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed
1.46 MB
Loading[フレーム]
533 KB
Binary file not shown.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
> 本文首发于公众号「图解面试算法」,是 [图解 LeetCode ](<https://github.com/MisterBooo/LeetCodeAnimation>) 系列文章之一。
2+
>
3+
> 个人博客:https://www.zhangxiaoshuai.fun
4+
5+
**本题选自leetcode中第1137题,easy级别,目前通过率52.4%**
6+
7+
### 题目描述:
8+
9+
```txt
10+
泰波那契序列 Tn 定义如下:
11+
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2
12+
给你整数 n,请返回第 n 个泰波那契数 Tn 的值。
13+
14+
示例 1:
15+
输入:n = 4
16+
输出:4
17+
解释:
18+
T_3 = 0 +たす 1 +たす 1 = 2
19+
T_4 = 1 +たす 1 +たす 2 = 4
20+
21+
示例 2:
22+
输入:n = 25
23+
输出:1389537
24+
25+
提示:
26+
0 <= n <= 37
27+
答案保证是一个 32 位整数,即 answer <= 2^31 - 1。
28+
```
29+
30+
### 题目分析:
31+
要是之前有接触过斐波那契数列的话,这道题是非常容易有解决思路的。我们有以下三种方法(正经方法两种,哈哈哈)来解决该问题:
32+
33+
```
34+
1.递归(但是leetcode中是无法AC的,超出时间限制,但是还是会将代码展示出来)
35+
2.动态规划(这种题都是已知前面的来求得未知的,使用dp再合适不过)
36+
3.暴力(抖机灵,看一乐就可以啦)
37+
```
38+
39+
### GIF动画演示:
40+
41+
![](../Animation/1137-Tribonacci.gif)
42+
43+
## 代码:
44+
45+
### 递归版本:
46+
47+
```java
48+
public int tribonacci(int n) {
49+
if (n == 0) {
50+
return 0;
51+
}
52+
if (n == 1 || n == 2) {
53+
return 1;
54+
}
55+
return tribonacci(n - 1) + tribonacci(n - 2) + tribonacci(n -3);
56+
}
57+
```
58+
59+
### 动态规划
60+
61+
```java
62+
int[] dp = new int[38];
63+
public int tribonacci(int n) {
64+
if (dp[n] != 0) {
65+
return dp[n];
66+
}
67+
if (n == 0) {
68+
return 0;
69+
} else if (n == 1 || n == 2) {
70+
return 1;
71+
} else {
72+
int res = tribonacci(n - 1) + tribonacci(n - 2) + tribonacci(n - 3);
73+
dp[n] = res;
74+
return res;
75+
}
76+
}
77+
```
78+
79+
### 暴力法(十分暴力,哈哈哈哈......)
80+
81+
```java
82+
public int tribonacci(int n) {
83+
int[] Ts = {0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149, 274, 504, 927, 1705, 3136, 5768, 10609, 19513, 35890, 66012, 121415, 223317, 410744, 755476, 1389537, 2555757, 4700770, 8646064, 15902591, 29249425, 53798080, 98950096, 181997601, 334745777, 615693474, 1132436852, 2082876103};
84+
return Ts[n];
85+
}
86+
```
87+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /