1 class Solution {
 2 public:
 3     int longestConsecutive(vector<int>& nums) {
 4         unordered_set<int> si;
 5         for(int &i: nums)
 6             si.insert(i);
 7         
 8         int res=0, cur=0;
 9         for(int i:nums){
10             if(si.find(i-1)!=si.end())
11                 continue;
12             int p=i;
13             while(si.find(p)!=si.end()){
14                 cur++;
15                 p++;
16             }
17             res=max(res,cur);
18             cur=0;
19         }
20         return res;
21     }
22 };

用个哈希表来存放数组,便于查找。在查找时,只判定i-1不在哈希表中的元素为起点的连续序列

posted on 2019-10-31 18:35  高数考了59  阅读(102)  评论(0)    收藏  举报