每日一题(day1)

举报
辰chen 发表于 2022/06/14 23:38:09 2022/06/14
【摘要】 文章目录 前言LeetCode 509. 斐波那契数LeetCode 1137. 第 N 个泰波那契数 前言 💫你好,我是辰chen,一个正在考研途中的 ...

前言

💫你好,我是辰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(n1)+F(n2),其中 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;
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Python版AC代码:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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<=2311

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;
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Python版AC代码:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

文章来源: chen-ac.blog.csdn.net,作者:辰chen,版权归原作者所有,如需转载,请联系作者。

原文链接:chen-ac.blog.csdn.net/article/details/124149079

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。