594. Longest Harmonious Subsequence

来源:互联网 发布:vb系列振动电机 编辑:程序博客网 时间:2024/06/03 23:05

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1.

Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subsequences.

Example 1:

Input: [1,3,2,2,5,2,3,7]Output: 5Explanation: The longest harmonious subsequence is [3,2,2,2,3].

思路1:使用哈希表统计每个数出现的次数。然后遍历哈希表,对于每一个键,查找有没有key-1和key+1

class Solution {public:    int findLHS(vector<int>& nums) {        unordered_map<int,int> flag;        for(auto i:nums)        flag[i]++;        int res=0;        for(int i=0;i<nums.size();i++)        {            int key=nums[i];            int count=max(flag[key+1],flag[key-1]);            if(count)                res=max(res,count+flag[key]);        }        return res;    }};


原创粉丝点击