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. 丢失的数字