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;
完