【Leetcode_easy】594. Longest Harmonious Subsequence

problem

594. Longest Harmonious Subsequence

最长和谐子序列

题意:

可以对数组进行排序,那么实际上只要找出来相差为1的两个数的总共出现个数就是一个和谐子序列的长度了.

solution1: 使用hashmap

用 HashMap 来做,先遍历一遍,建立每个数字跟其出现次数之间的映射,然后再遍历每个数字的时候,只需在 HashMap 中查找该数字加1是否存在,存在就更新结果 res.

class Solution {
public:
    int findLHS(vector<int>& nums) {
        int res = 0;
        unordered_map<int, int> mymap;
        for (auto num : nums) mymap[num]++;
        for(auto a : mymap)
        {
            if(mymap.count(a.first+1))
            {
                res = max(res, mymap[a.first]+mymap[a.first+1]);
            }
            
        }
        return res;
    }
};

参考

1. Leetcode_easy_594. Longest Harmonious Subsequence;

2. Grandyang;

原文地址:https://www.cnblogs.com/happyamyhope/p/11059198.html