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

你学会了吗???

相关推荐
LucianaiB几秒前
仓颉语言核心技术解析:如何开发高性能服务端应用
职场和发展·高性能·语言·仓颉
吃着火锅x唱着歌11 分钟前
LeetCode 74.搜索二维矩阵
算法·leetcode·矩阵
老王熬夜敲代码11 分钟前
C++继承回顾
c++·笔记
mit6.82415 分钟前
hash|快速幂|栈
算法
OG one.Z19 分钟前
06_决策树
算法·决策树·机器学习
qq_3106585121 分钟前
webrtc代码走读(六)-QOS-FEC冗余度配置
网络·c++·webrtc
爪哇部落算法小助手1 小时前
每日两题day23
算法
Aevget1 小时前
从复杂到高效:QtitanNavigation助力金融系统界面优化升级
c++·qt·金融·界面控件·ui开发
妮妮喔妮1 小时前
10.25复习LRU缓存[特殊字符]
算法
jf加菲猫1 小时前
条款20:对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr
开发语言·c++