class Solution {
public:
int findLHS(vector<int>& nums) {
unordered_map<int, int> cnt;
for (auto num : nums) {
cnt[num]++;
}
int res = 0;
for (auto [k, v] : cnt) {
if (cnt.count(k + 1)) {
res = max(res, v + cnt[k + 1]);
}
if (cnt.count(k - 1)) {
res = max(res, v + cnt[k - 1]);
}
}
return res;
}
};