本题源自LeetCode
------------------------------------------------------------------------------------
用hash表来解决这个问题,先初始化一个hash表, 存储所有数组元素, 然后遍历这个数组, 对找到的数组元素, 去搜索其相连的上下两个元素是否在hash表中, 如果在, 删除相应元素并增加此次查找的数据长度, 如果不在, 从下一个元素出发查找。已经访问过的元素记录下来或者删除,
int longestConsecutive(vector<int> &num) {
unordered_set<int> myset(num.begin(),num.end());
int res=1;
for(int current:num){
if(myset.find(current)!=myset.end()){
myset.erase(current);
int post=current+1;
int pre=current-1;
while(myset.find(pre)!=myset.end()){
myset.erase(pre);
pre--;
}
while(myset.find(post)!=myset.end()){
myset.erase(post);
post++;
}
res=max(res,post-pre-1);
}
}
return res;
}