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

你学会了吗???

相关推荐
Eloudy几秒前
动态库中不透明数据结构的设计要点总结
数据结构·设计模式
王老师青少年编程1 分钟前
2022年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
小O的算法实验室2 分钟前
2025年JIM SCI2区,基于Q学习多目标粒子群算法+节能型分布式流水车间调度,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
YunchengLi3 分钟前
【计算机图形学中的四元数】1/2 Quaternions for Computer Graphics
人工智能·算法·机器学习
良木生香4 分钟前
【C++初阶】C++入门相关知识(1):C++历史 & 第一个C++程序 & 命名空间
c语言·开发语言·c++
重生之后端学习5 分钟前
108. 将有序数组转换为二叉搜索树
数据结构·算法·深度优先
诸葛务农6 分钟前
点云配准在人形机器人中的应用:ICP算法(1)
算法·机器学习·机器人
寻寻觅觅☆8 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
fpcc8 小时前
并行编程实战——CUDA编程的Parallel Task类型
c++·cuda
偷吃的耗子9 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn