594. Longest Harmonious Subsequence

Problem:

We define a harmounious array as 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: 5
Explanation: The longest harmonious subsequence is [3,2,2,2,3].

Note: The length of the input array will not exceed 20,000.

思路

Solution (C++):

int findLHS(vector<int>& nums) {
    unordered_map<int, int> hash;
    int res = 0;
    for (auto n : nums)  ++hash[n];
    
    for (auto h : hash) {
        if (hash.count(h.first-1) > 0) {
            res = max(res, h.second + hash[h.first-1]);
        }
    }
    return res;
}

性能

Runtime: 120 ms  Memory Usage: 17.7 MB

思路

Solution (C++):


性能

Runtime: ms  Memory Usage: MB

相关链接如下:

知乎:littledy

欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

作者:littledy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/dysjtu1995/p/12716484.html