class Solution {
public:
int findLHS(vector<int>& nums) {
// map<int,int>m;
// int res=0;
// for(auto num:nums)
// {
// m[num]++;
// }
// for(auto num:nums)
// {
// if(m.find(num-1)!=m.end())
// res=max(res,m[num]+m[num-1]);
// if(m.find(num+1)!=m.end())
// res=max(res,m[num]+m[num+1]);
// }
// return res;
//排序加滑动窗口
sort(nums.begin(),nums.end());
int begin=0;
int res=0;
for(int end=0;end<nums.size();end++)
{
while (nums[end] - nums[begin] > 1) {
begin++;
}
if(nums[end]-nums[begin]==1)
{
res=max(res,end-begin+1);
}
}
return res;
}
};