JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 public class Solution {
 2     public int longestConsecutive(int[] num) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         int len = num.length;
 6         if(len < 0)
 7             return 0;
 8         Map<Integer, Integer > table = new HashMap<Integer,Integer>();
 9         int[] visit = new int[len];
10         for(int i: visit)
11             i = 0;
12         for(int i = 0; i < num.length;i++)
13         {
14             table.put(num[i], i);
15             
16         }
17         int result = 1;
18         for(int i=0; i<len;i++)
19         {
20             int count = 1;
21             if(visit[i] == 0)
22             {
23                 int tmp = num[i];
24                 while(table.containsKey(--tmp))
25                     {
26                         count ++ ;
27                         visit[table.get(tmp)] = 1;
28                     }
29                 tmp = num[i];
30                 while(table.containsKey(++tmp))
31                     {
32                         count ++;
33                         visit[table.get(tmp)] = 1;
34                     }
35                 if(count > result)
36                     result = count;
37             }
38         }
39         return result;
40         
41     }
42 }

 

posted on 2013-11-28 08:41  JasonChang  阅读(170)  评论(0编辑  收藏  举报