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

你学会了吗???

相关推荐
代码游侠4 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
2301_763472465 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
阿猿收手吧!5 小时前
【C++】std::promise原理与实战解析
c++
abluckyboy5 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
园小异5 小时前
2026年技术面试完全指南:从算法到系统设计的实战突破
算法·面试·职场和发展
m0_706653235 小时前
分布式系统安全通信
开发语言·c++·算法
Zach_yuan6 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
寻寻觅觅☆6 小时前
东华OJ-基础题-104-A == B ?(C++)
开发语言·c++
lightqjx6 小时前
【C++】unordered系列的封装
开发语言·c++·stl·unordered系列
天天爱吃肉82186 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车