题意要求O(n)内解决,看了下别人的题解好像用的是没用过的STL... 但这题即使用排序nlogn来解,也只要十多个毫秒就可以解决,甚至比它们的解法都更省时
所以我也不知道它们的方法是不是真的是O(n)的...
感觉没什么意思 就先O(nlogn)解了... 下回再来看它们
代码:
class Solution
{
public:
int longestConsecutive(vector<int> &num)
{
if (num.size() == 0)
{
return 0;
}
int ret = 1, tmp = 1;
sort(num.begin(), num.end());
for (size_t i = 1; i < num.size(); ++ i)
{
if (num[i] == num[i-1] + 1)
{
++ tmp;
ret = max(ret, tmp);
} else if (num[i] != num[i-1])
{
tmp = 1;
}
}
return ret;
}
};