leetcode-剑指 Offer II 119. 最长连续序列

class Solution { public: int longestConsecutive(vector<int>& nums) { if(nums.size()==0) return 0; sort(nums.begin(), nums.end()); // 去除重复元素, 不然遇到0 1 1 2 ,其实最长序列为3,但是计算的为2 nums.erase(unique(nums.begin(), nums.end()), nums.end()); int i = 0; int j = 0; int res = INT_MIN; while(j<nums.size()){ while((j+1)<nums.size()&&nums[j+1]-nums[j]==1){ j++; } res = max(res, j-i+1); i = j+1; // 更新窗口起点 j++; // 扩大窗口 } return res; } };

浙公网安备 33010602011771号