594. 最长和谐子序列【难度: 一般 / 思维 】

在这里插入图片描述
https://leetcode-cn.com/problems/longest-harmonious-subsequence/
也就是说这俩数必须是连续的,故直接哈希表存数的个数,然后遍历数组看相邻的两个数是否都存在即可,取一个max。

class Solution {
    
    
public:
    int findLHS(vector<int>& nums) 
    {
    
    
        int ans=0;
        unordered_map<int,int>mp;
        for(int i=0;i<nums.size();i++) mp[nums[i]]++;
        for(int i=0;i<nums.size();i++)
        {
    
    
            if(mp[nums[i]]&&mp[nums[i]+1]) ans=max(ans,mp[nums[i]]+mp[nums[i]+1]);
        }
        return ans;
    }
};

猜你喜欢

转载自blog.csdn.net/bettle_king/article/details/121440059