当前位置: 代码迷 >> 综合 >> 每日一题(day1)
  详细解决方案

每日一题(day1)

热度:40   发布时间:2023-11-22 13:05:16.0

文章目录

  • 前言
  • LeetCode 509. 斐波那契数
  • LeetCode 1137. 第 N 个泰波那契数

前言

?你好,我是辰chen,一个正在考研途中的 s o p h o m o r e sophomore sophomore d o g dog dog?
?目前每日一题主要来自于 leetcode,当然也可能来自洛谷或其他刷题平台,每日一题专栏地址:每日一题
?欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容

? 每日一题我会给出两种代码, C C C版以及 P y t h o n Python Python版,刷题的目的是为了考研的算法题以及机试(或手写代码)
?这也是为什么不用 C + + C++ C++ 而用 C C C P y t h o n Python Python版代码是为了提高语言熟练度(以后开发大概率用的是 P y t h o n Python Python
? 坚持打卡!踏踏实实走好每一步

以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:

?ACM-ICPC算法汇总【基础篇】
?ACM-ICPC算法汇总【提高篇】
?AIoT(人工智能+物联网)
?考研
?CSP认证考试历年题解

?每日一句也许终点只有绝望和失败,但这绝不是停止前行的理由。

大家做完可以在评论区打卡留言??,形成良好的学习氛围,一起进步!

LeetCode 509. 斐波那契数

题目链接:LeetCode 509. 斐波那契数

题目描述:

斐波那契数 (通常用 F ( n ) F(n) F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 0 0 1 1 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F ( 0 ) = 0 , F ( 1 ) = 1 F(0) = 0,F(1) = 1 F(0)=0F(1)=1
F ( n ) = F ( n ? 1 ) + F ( n ? 2 ) F(n) = F(n - 1) + F(n - 2) F(n)=F(n?1)+F(n?2),其中 n > 1 n > 1 n>1

给定 n n n ,请计算 F ( n ) F(n) F(n)

示例 1:
输入: n = 2 n = 2 n=2
输出: 1 1 1
解释: F ( 2 ) = F ( 1 ) + F ( 0 ) = 1 + 0 = 1 F(2) = F(1) + F(0) = 1 + 0 = 1 F(2)=F(1)+F(0)=1+0=1

示例 2:
输入: n = 3 n = 3 n=3
输出: 2 2 2
解释: F ( 3 ) = F ( 2 ) + F ( 1 ) = 1 + 1 = 2 F(3) = F(2) + F(1) = 1 + 1 = 2 F(3)=F(2)+F(1)=1+1=2

示例 3:
输入: n = 4 n = 4 n=4
输出: 3 3 3
解释: F ( 4 ) = F ( 3 ) + F ( 2 ) = 2 + 1 = 3 F(4) = F(3) + F(2) = 2 + 1 = 3 F(4)=F(3)+F(2)=2+1=3

提示:
0 < = n < = 30 0 <= n <= 30 0<=n<=30

C版AC代码:

int fib(int n){
    if (n < 2) return n;else{
    int a = 0, b = 0, c = 1;for (int i = 2; i <= n; i ++ ){
    a = b;b = c;c = a + b;}return c;}
}

Python版AC代码:

class Solution:def fib(self, n: int) -> int:if n < 2:return nelse:a, b = 0, 1for i in range(2, n + 1):c = a + ba, b = b, creturn c

LeetCode 1137. 第 N 个泰波那契数

题目链接: LeetCode 1137. 第 N 个泰波那契数

题目描述:

泰波那契序列 T n T_n Tn? 定义如下:

T 0 = 0 , T 1 = 1 , T 2 = 1 T_0 = 0, T_1 = 1, T_2 = 1 T0?=0,T1?=1,T2?=1, 且在 n > = 0 n >= 0 n>=0 的条件下 T n + 3 = T n + T n + 1 + T n + 2 T_{n+3} = T_n + T_{n+1} + T_{n+2} Tn+3?=Tn?+Tn+1?+Tn+2?

给你整数 n n n,请返回第 n n n 个泰波那契数 T n T_n Tn? 的值。

示例 1:
输入: n = 4 n = 4 n=4
输出: 4 4 4
解释:
T 3 = 0 + 1 + 1 = 2 T_3 = 0 + 1 + 1 = 2 T3?=0+1+1=2
T 4 = 1 + 1 + 2 = 4 T_4 = 1 + 1 + 2 = 4 T4?=1+1+2=4

示例 2:
输入: n = 25 n = 25 n=25
输出: 1389537 1389537 1389537

提示:
0 < = n < = 37 0 <= n <= 37 0<=n<=37
答案保证是一个 32 32 32 位整数,即 a n s w e r < = 2 31 ? 1 answer <= 2^{31} - 1 answer<=231?1

C版AC代码:

int tribonacci(int n){
    if (n == 0) return 0;else if (n <= 2) return 1;else{
    int a = 0, b = 0, c = 1, d = 1;for (int i = 3; i <= n; i ++ ){
    a = b;b = c;c = d;d = a + b + c;}return d;}
}

Python版AC代码:

class Solution:def tribonacci(self, n: int) -> int:if n == 0:return 0elif n <= 2:return 1else:a, b, c = 0, 1, 1for i in range(3, n + 1):s = a + b + ca, b, c = b, c, sreturn s