Longest Arithmetic Subsequence of Given Difference LeetCode solution in C++

1
class Solution {
2
public:
3
int longestSubsequence(vector<int> &arr, int difference) {
4
int n = arr.size();
5

6
unordered_map<int, int> mp;
7
multiset<int> s;
8
int ans = 1;
9

10
for (int i = 0; i < n; i++) {
11
int req = arr[i] - difference;
12
auto it = s.find(req);
13
s.insert(arr[i]);
14

15
if (it == s.end()) {
16
continue;
17
} else {
18
mp[arr[i]] = mp[req] + 1;
19
ans = max(ans, mp[arr[i]] + 1);
20
}
21
}
22

23
return ans;
24
}
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0