力扣 -- 1027. 最长等差数列

解题步骤:

参考代码:

cpp 复制代码
class Solution {
public:
    int longestArithSeqLength(vector<int>& nums) {
        int n=nums.size();
        int ret=2;
        unordered_map<int,int> hash;

        //这里可以先把nums[0]存进哈希表中,方便后面i从1开始遍历
        hash[nums[0]]=0;
        vector<vector<int>> dp(n,vector<int>(n,2));

        for(int i=1;i<n;i++)
        {
            for(int j=i+1;j<n;j++)
            {
                int b=nums[i];
                int c=nums[j];
                int a=2*b-c;

                if(hash.count(a))
                {
                    dp[i][j]=dp[hash[a]][i]+1;
                }
                ret=max(ret,dp[i][j]);
            }
            //第i行填完之后记得把这个nums[i]和i绑定放进哈希表中
            hash[nums[i]]=i;
        }
        return ret;
    }
};

你学会了吗???

相关推荐
球求了18 分钟前
C++:继承机制详解
开发语言·c++·学习
adam_life30 分钟前
http://noi.openjudge.cn/——2.5基本算法之搜索——200:Solitaire
算法·宽搜·布局唯一码
超爱笑嘻嘻1 小时前
shared_ptr八股收集 C++
c++
我想进大厂1 小时前
图论---朴素Prim(稠密图)
数据结构·c++·算法·图论
我想进大厂1 小时前
图论---Bellman-Ford算法
数据结构·c++·算法·图论
AIGC大时代1 小时前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
光而不耀@lgy1 小时前
C++初登门槛
linux·开发语言·网络·c++·后端
lkbhua莱克瓦241 小时前
用C语言实现——一个中缀表达式的计算器。支持用户输入和动画演示过程。
c语言·开发语言·数据结构·链表·学习方法·交友·计算器
啊丢_2 小时前
C++——Lambda表达式
开发语言·c++
CODE_RabbitV2 小时前
【深度强化学习 DRL 快速实践】近端策略优化 (PPO)
算法