LeetCode 1218最长定差子序列[Map 动态规划] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1218最长定差子序列[Map 动态规划] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
这是一道经典的运用Map来进行的动态规划题目。要想知道i是否在等差数列上,就要知道i - different是否在等差数列上,这就好办了,直接用map存储数,初始值都是0,每个数都从1开始更新,代码如下:

class Solution {
public:
    int longestSubsequence(vector<int>& arr, int difference) {
        unordered_map<int, int> mp;
        int maxLen = 1;
        for(int& a : arr) {
            mp[a] = mp[a - difference] + 1;
            maxLen = max(maxLen, mp[a]);
        }
        return maxLen;
    }
};

以上是关于LeetCode 1218最长定差子序列[Map 动态规划] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode 周赛 157] 1218 最长定差子序列

leetcode打卡——等差数列题目(LIS变式)——1218. 最长定差子序列

LeetCode 367. 有效的完全平方数 / 1218. 最长定差子序列 / 268. 丢失的数字

Leecode 1218. 最长定差子序列——Leecode每日一题系列

Leetcode——最长定差子序列

Leetcode——最长定差子序列