Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
Example
Given [100, 4, 200, 1, 3, 2]
,
The longest consecutive elements sequence is [1, 2, 3, 4]
. Return
its length: 4
.
public class Solution {
/**
* @param nums: A list of integers
* @return an integer
*/
public int longestConsecutive(int[] num) {
if(num.length == 0) return 0;
List<Integer> res = new ArrayList<Integer>();
for(int i = 0; i < num.length; i++) {
res.add(num[i]);
}
int max = 1;
for(int i = 0; i < num.length; i++) {
int key = num[i];
if(res.contains(key)) {
int tmp = 1;
res.remove(res.indexOf(key));
if(res.contains(key + 1) || res.contains(key - 1)) {
int newKey = key;
while(res.contains(newKey + 1)) {
tmp ++;
res.remove(res.indexOf(newKey + 1));
newKey += 1;
}
newKey = key;
while(res.contains(newKey - 1)) {
tmp ++;
res.remove(res.indexOf(newKey - 1));
newKey -= 1;
}
}
max = Math.max(max, tmp);
}
}
return max;
}
}