力扣hot100 C++(自用03)
·

思路:把数组排序,从数组中第一个元素开始,检查数组中当前元素加1是否等于下一个元素,成立则连续序列加一;若数组中当前元素是等于下一个元素,那连续序列不变且继续查看下一个元素;若数组中当前元素加1不等于下一个元素,那么连续序列重新从1开始增加;只保留连续序列最大值。
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
sort(nums.begin(),nums.end());
int ans=1;
int i;
int count=1;
int n=nums.size();
if(n==0) return 0;
for(i=0;i<n-1;i++)
{
if(nums[i]+1==nums[i+1])
{
count++;
}
else if(nums[i]==nums[i+1])
{
continue;
}
else {
ans=max(count,ans);
count=1;
}
}
ans=max(count,ans);
return ans;
}
};
更多推荐
所有评论(0)