【发布时间】:2015-12-05 05:51:15
【问题描述】:
我为这个问题写了一个方法: 输入:一个整数数组 返回:最长连续整数序列的长度。 比如:对于 {9,1,2,3},返回 3,因为 {1,2,3}
该方法运行不佳。希望有人可以帮助我调试。
public int solution(int[] arr){
int counter = 1;
int max = arr[1];
//find the max in the array
for (int i : arr){
if (i > max){
max = i;
}
}
int[] nArr = new int[max];
for (int i : arr){
nArr[i] = i;
}
List<Integer> counters = new ArrayList<>();
for (int i = 0; i < max; i++){
if (nArr[i] == nArr[i+1] - 1){
counter++;
}else{
counters.add(counter);
counter = 1;
}
}
max = counters.get(1);
for (int i : counters){
if (i > max){
max = i;
}
}
return max; }
非常感谢!!!
【问题讨论】: