力扣-594题 最长和谐子序列(C++)- 滑动窗口

题目链接:https://leetcode-cn.com/problems/longest-harmonious-subsequence/
题目如下:
在这里插入图片描述

class Solution {
    
    
public:
    int findLHS(vector<int>& nums) {
    
    
        //子序列是可以不连续的,升序
        sort(nums.begin(),nums.end());
        int result=0;
        int begin=0;

        //类似滑动窗口
        //begin指向第一个连续相同元素的子序列的第一个元素
        //end指向相邻的第二个连续相同元素的子序列的末尾元素
        for(int end=0;end<nums.size();end++){
    
    
            while(nums[end]-nums[begin]>1) begin++;

            if(nums[end]-nums[begin]==1) result=max(result,end-begin+1);
        }

        return result;
    }
};

おすすめ

転載: blog.csdn.net/qq_40467670/article/details/121445564