problem
最长和谐子序列
题意:
可以对数组进行排序,那么实际上只要找出来相差为1的两个数的总共出现个数就是一个和谐子序列的长度了.
solution1: 使用hashmap
用 HashMap 来做,先遍历一遍,建立每个数字跟其出现次数之间的映射,然后再遍历每个数字的时候,只需在 HashMap 中查找该数字加1是否存在,存在就更新结果 res.
class Solution {public: int findLHS(vector & nums) { int res = 0; unordered_mapmymap; 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. ;
2. ;
完