594. 最长和谐子序列
思路:滑动窗口/双指针
通过保证区间左右端点差值永远<=1<=1<=1,维护这样的滑动窗口,每一次保留区间长度的最大值
class Solution {
public:
int findLHS(vector<int>& nums) {
int res = 0, l = 0, r = 0;
int n = nums.size();
sort(nums.begin(), nums.end());
for (r = 1; r < n; r ++ ) {
while (nums[r] - nums[l] > 1) l ++ ;
if (nums[r] - nums[l] == 1) {
res = max(res, r - l + 1);
}
}
return res;
}
};
本文介绍了一种使用滑动窗口和双指针技术求解最长和谐子序列问题的方法。通过维护一个特殊的滑动窗口,该窗口内的元素差值不超过1,以此来找出数组中最长的和谐子序列。
357

被折叠的 条评论
为什么被折叠?



