import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tag int整型一维数组
* @return int整型
*/
public int longestConsecutive (int[] tag) {
// write code here
Arrays.sort(tag);
int l = 0;
int ans = 1;
for (int i = 1; i < tag.length; i++) {
if (tag[i] - tag[i - 1] == 1) {
ans = Math.max(ans, i - l + 1);
} else {
l = i;
}
}
return ans;
}
}
使用的是Java语言。
该题考察的知识点是数组排序和遍历。
具体的解题思路如下:
- 首先对给定的整型数组进行排序,使用
Arrays.sort(tag)方法实现。 - 初始化起始位置
l为0,表示当前连续序列的起始索引。 - 初始化最大连续序列的长度
ans为1。 - 使用一次循环遍历数组
tag,从索引1开始。 - 在循环中,判断当前元素
tag[i]与前一个元素tag[i - 1]的差值是否等于1,如果是,则可以构成连续序列。 - 更新最大连续序列的长度
ans为i - l + 1,并将其与之前的最大长度进行比较,取较大值。 - 如果当前元素与前一个元素的差值不等于1,则表示当前连续序列被打断,更新起始位置
l为当前位置i。 - 循环结束后,返回最大连续序列的长度
ans作为结果。

京公网安备 11010502036488号