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

这道题目考察的是排序和数组的运用

代码的逻辑:

  1. 初始化一个变量l表示连续序列的起始位置,默认为0。
  2. 初始化一个变量ans表示最长连续序列的长度,默认为1。
  3. 使用循环从数组的第二个元素开始遍历。
  4. 如果当前元素与前一个元素的差为1,说明当前元素可以加入连续序列中。更新ans为当前连续序列的长度i - l + 1,其中i为当前元素的索引。
  5. 更新l为当前元素的索引,重新开始计算连续序列的长度。
  6. 循环结束后,返回最长连续序列的长度ans
全部评论

相关推荐

03-10 20:35
已编辑
武汉大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务