【发布时间】:2020-08-03 18:29:03
【问题描述】:
我在尝试查找序列中最长的连续元素时遇到了一些麻烦,这部分是对数组进行排序并将连续元素的长度添加到 ArrayList 中的部分。谁能告诉我为什么这段代码是错误的?
public static int longest_sequence(int[] array)
{
int length = 0;
// ArrayList to hold all lengths
ArrayList<Integer> consecutiveArray = new ArrayList<Integer>();
Arrays.sort(array);
for (int i = 0; i < array.length - 1; i++)
{
if (array[i] + 1 == array[i + 1])
{
length++;
}
else
{
consecutiveArray.add(length);
length = 0;
}
}
Collections.sort(consecutiveArray);
return consecutiveArray.get(consecutiveArray.size() - 1);
}
【问题讨论】:
-
预期的输入和输出?如果这是来自 leetcode 之类的网站,请同时发布问题的链接。
-
调试你的代码。
-
当您对输入数组进行排序时,您正在更改序列
Arrays.sort(array);。 -
你只是应该找到它的长度还是元素的实际子数组?
标签: java arrays arraylist collections