最长和谐子序列
1. LeetCode 594: Longest Harmonious Subsequence
2. 描述:
和谐数组是指一个数组中最大值和最小值的差为1。
给定一个整数数组,需要找出其子数组中最长的”和谐序列”的长度
3. 示例:
Input: [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The longest harmonious subsequence is [3,2,2,2,3].
4. Solution 1:
int findLHS(vector<int>& nums) {
unordered_map<int, int> num_map;
for(auto num: nums){
num_map[num]++;
}
int result = 0;
for(pair<int, int> key_value: num_map){
if(num_map.find(key_value.first + 1) != num_map.end()){
result = std::max(result, key_value.second + num_map[key_value.first + 1]);
}
}
return result;
}