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

你学会了吗???

相关推荐
ocean21038 小时前
2025-2026年AI算法与模型研发面试高频知识点洞察
人工智能·算法·面试
Nil2088 小时前
leetcode 78子集
数据结构·算法·leetcode
喜欢吃燃面9 小时前
深入 C++ STL:从 unordered_set与unordered_map到底层哈希表的原理与实现
数据结构·c++·散列表
en.en..9 小时前
Linux fork() 工作原理
数据结构·算法
FlightYe9 小时前
音视频修炼之基础理论(五):AAC格式与解析
android·linux·c++·音视频·aac
地平线开发者10 小时前
bevformer算法模型详细解读
算法
liliangcsdn10 小时前
ICIR权重矩阵如何加权标准化为综合因子
算法
ShineWinsu10 小时前
对于MySQL:数据库的操作的解析
linux·数据库·c++·mysql·面试·笔试·库的操作
云小逸10 小时前
C++ 第一阶段:对象、内存与生命周期
开发语言·c++
夜航海图10 小时前
S-57 数据解剖:把一个 ENC 文件拆给你看
c++