题目链接:594. 最长和谐子序列 - 力扣(LeetCode) (leetcode-cn.com)
难度:Easy
把 作为 , 出现的次数作为 建 ,统计相邻( 和 )两元素出现的次数,更新答案。
特殊的,如果 元素个数为 ,答案为 。
#define max(a,b) (a>b?a:b)
class Solution {
public:
int findLHS(vector<int>& nums) {
map<int,int>m;
for(auto& num:nums){
if(m[num]){
m[num] = m[num] + 1;
} else {
m[num] = 1;
}
}
int ans = 0;
for(auto& p:m){
int k = p.first, v = p.second;
// 同时过滤掉最后一个元素
if(m.find(k+1) == m.end()){
continue;
}
ans = max(ans, v + m[k+1]);
}
return ans;
}
};