双指针+ 滑动窗口
class Solution {
public int findLHS(int[] nums) {
Arrays.sort(nums);
int left = 0; //左指针
int right = 1; //右指针
int result = 0;
for (; right < nums.length; right++) {
// 当差值 大于1时,并且 左指针没有超过右指针时,通过移动左指针来 维护 差值=1
while (((nums[right] - nums[left]) > 1) && (left < right)) {
left++;
}
if ((nums[right] - nums[left]) == 1) {
int ans =right - left + 1;
result = Math.max(ans,result);
}
}
return result;
}
}