算法日记(三)

本文介绍了基础算法概念,包括等差数列、等比数列的递推公式,并重点剖析了斐波那契数列及其在LeetCode上的应用实例,通过C++代码演示如何计算斐波那契数和泰波那契数。同时提及了其他数列的求和问题和单调数列的判断技巧。
摘要由CSDN通过智能技术生成

《算法零基础100讲》(第2讲) 数列_英雄哪里出来-CSDN博客

数列

下面是各个数列的递推公式

1.等差数列

2.等比数列

 

3.斐波那契数列

 英雄哥重视的斐波那契数列,因为它对之后的递归理解有重要作用

509. 斐波那契数 - 力扣(LeetCode) (leetcode-cn.com)

该题是一个用于帮助我们理解斐波那契的简单题,我将以acm形式打出,其实斐波那契就是后一项等于前两项之和。

#include<bits/stdc++.h>//该程序用来求斐波那契的第n项
using namespace std;
 int fib(int n)
{
    int f[35];
    f[0]=0,f[1]=1;//前两个数比较特殊
    for(int i=2;i<=n;i++)
    {
        f[i]=f[i-1]+f[i-2];//递推公式
    }
    return f[n];
}
int main()
{
    int n;
    cin>>n;
    cout<<fib(n);
    return 0;
}

 1137. 第 N 个泰波那契数 - 力扣(LeetCode) (leetcode-cn.com)

是斐波那契的一个类似题

#include<bits/stdc++.h>//与斐波那契数列基本相似
using namespace std;
 int tribonacci(int n) {
int t[40];
t[0]=0,t[1]=1,t[2]=1;//特殊情况
for(int i=3;i<=n;i++)
{
    t[i]=t[i-1]+t[i-2]+t[i-3];//题中已给递推公式
}
return t[n];
}
int main()
{
    int n;
    cin>>n;
    cout<<tribonacci(n);
    return 0;
}

剑指 Offer 64. 求1+2+…+n - 力扣(LeetCode) (leetcode-cn.com)

题中不让用循环,可惜目前我水平有限,改日一定回来不用循环做一遍

#include<iostream>
using namespace std;
int sumNums(int n)
{
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        sum+=i;
    }
    return sum;
}
int main()
{
    int n;
    cin>>n;
    cout<<sumNums(n);
    return 0;
}
    

896. 单调数列 - 力扣(LeetCode) (leetcode-cn.com)

class Solution {
public:
    bool isMonotonic(vector<int>& A) {//布尔型,直接判断真假即是不是单调数列
       int a=0,b=0;//主要思想就是,这个数列要不单调递增要不就单调递减,否则就不成立
       for(int i=1;i<A.size();i++)//所以如果递减就令a=1;反正b=1;
       {
           if(A[i]>A[i-1]) a=1;
           if(A[i]<A[i-1]) b=1;
           if(a+b==2) return false;//如果又增又减,不合格,为假
       }
       return true;
    }
};

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

forget hurt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值