【快乐水题】594. 最长和谐子序列
生活随笔
收集整理的這篇文章主要介紹了
【快乐水题】594. 最长和谐子序列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題:
力扣鏈接:594. 最長和諧子序列
題目簡述:
和諧數組是指一個數組里元素的最大值和最小值之間的差別 正好是 1 。
現在,給你一個整數數組 nums ,請你在所有可能的子序列中找到最長的和諧子序列的長度。
數組的子序列是一個由數組派生出來的序列,它可以通過刪除一些元素或不刪除元素、且不改變其余元素的順序而得到。
解題思路
1.哈希計數;
2.然后計算差值為1的兩個數的次數和;
3.over;
C++代碼:
class Solution { public:int findLHS(vector<int>& nums) {unordered_map<int, int> umap;for(auto i : nums){++umap[i];}int nRetMax = 0;for(auto it = umap.begin();it != umap.end(); it++){//cout << it->first << " " << it->second << endl;if(umap.count(it->first + 1)){nRetMax = max(nRetMax, umap[it->first + 1] + it->second);}}return nRetMax;} };力扣結果展示:
總結
以上是生活随笔為你收集整理的【快乐水题】594. 最长和谐子序列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【快乐水题】677. 键值映射
- 下一篇: 2020年中国直播电商行业研究报告