首页 > 其他 > 详细

[leetcode-594-Longest Harmonious Subsequence]

时间:2017-05-21 12:19:08      阅读:730      评论:0      收藏:0      [点我收藏+]

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1.
Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subsequences.
Example 1:
Input: [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The longest harmonious subsequence is [3,2,2,2,3].

思路:

定义一个map,记录数组中数字出现的次数,连续两个数字出现次数的和即为harmonious subsequence。

nt findLHS(vector<int>& nums)
{
  if(nums.size()<1)return 0;
  map<int,int>table;
  sort(nums.begin(),nums.end());
  for(int i=0;i<nums.size();i++)
  {
    table[nums[i]]++;
  }
  map<int ,int>::iterator it = table.begin();
  map<int ,int>::iterator temp = it;
  temp++;
  int ret  =0;
  for(;temp!=table.end();it++,temp++)
  {
    if(table.count(it->first+1))
    {      
      ret = max(ret,it->second+temp->second);      
    }
  }
  return ret;        
}

 

[leetcode-594-Longest Harmonious Subsequence]

原文:http://www.cnblogs.com/hellowooorld/p/6884340.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!