题解 | #连续的牛群标签序列# 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
。