- 哈希表 + 动态规划
function longestSubsequence(arr: number[], difference: number): number {
const map: Map<number, number> = new Map<number, number>(),
length: number = arr.length;
let maxLen: number = 1;
for (let i = 0; i < length; ++i) {
// 代码块回答了一个问题: 以arr[i]结尾的等差数列长度是多长呢?
const lastNumber: number = arr[i] - difference;
const value: number = (map.get(lastNumber) || 0) + 1;
map.set(arr[i], value);
maxLen = Math.max(maxLen, value);
}
return maxLen;
};