leetcode - Longest Consecutive Sequence
2013-04-26 15:19 张汉生 阅读(212) 评论(0) 编辑 收藏 举报题目描述:点击此处
这道题还是排序了,没能在O(n)的时间内解决,想了一个基于模的方法好久还没出结果,看网上都是用哈希表做得,个人不认同哈希表的访问时间为O(1)。
1 class Solution { 2 public: 3 int longestConsecutive(vector<int> &num) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 if (num.size()<=0) 7 return 0; 8 sort(num.begin(),num.end()); 9 int len = 1; 10 int max = 1; 11 int last = *(num.begin()); 12 for (vector<int>::iterator ii= num.begin()+1; ii != num.end(); ii++){ 13 if (*ii == last) 14 continue; 15 else if (*ii== last +1){ 16 len ++; 17 max = max >= len? max:len; 18 last++; 19 } 20 else { 21 last= *ii; 22 len = 1; 23 } 24 } 25 return max; 26 } 27 };