LeetCode 594. 最长和谐子序列 Longest Harmonious Subsequence (Easy)
Posted zsy-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 594. 最长和谐子序列 Longest Harmonious Subsequence (Easy)相关的知识,希望对你有一定的参考价值。
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。
现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。
来源:力扣(LeetCode)
解法一:哈希表
class Solution { public: int findLHS(vector<int>& nums) { unordered_map<int, int> hashMap; for (int num : nums) ++hashMap[num]; int longest = 0; for (auto num : hashMap) //num <int, int> = <first, second> { if (hashMap.count(num.first + 1)) //最大值和最小值之间的差别正好是1 longest = max(num.second + hashMap[num.first + 1], longest); } return longest; } };
解法二:排序后双指针
以上是关于LeetCode 594. 最长和谐子序列 Longest Harmonious Subsequence (Easy)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 594. 最长和谐子序列 Longest Harmonious Subsequence (Easy)
LeetCode 594 最长和谐子序列[双指针Map] HERODING的LeetCode之路