题解 | #连续的牛群标签序列# java
连续的牛群标签序列
https://www.nowcoder.com/practice/5db36ae74c274176a0cf9274e9f9ed3e
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语言。
这道题目考察的是排序和数组的运用
代码的逻辑:
- 初始化一个变量
l表示连续序列的起始位置,默认为0。 - 初始化一个变量
ans表示最长连续序列的长度,默认为1。 - 使用循环从数组的第二个元素开始遍历。
- 如果当前元素与前一个元素的差为1,说明当前元素可以加入连续序列中。更新ans为当前连续序列的长度i - l + 1,其中i为当前元素的索引。
- 更新
l为当前元素的索引,重新开始计算连续序列的长度。 - 循环结束后,返回最长连续序列的长度
ans。
查看8道真题和解析