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 }