题解 | #连续的牛群标签序列# 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. 首先对给定的整型数组进行排序,使用Arrays.sort(tag)方法实现。
  2. 初始化起始位置l为0,表示当前连续序列的起始索引。
  3. 初始化最大连续序列的长度ans为1。
  4. 使用一次循环遍历数组tag,从索引1开始。
  5. 在循环中,判断当前元素tag[i]与前一个元素tag[i - 1]的差值是否等于1,如果是,则可以构成连续序列。
  6. 更新最大连续序列的长度ansi - l + 1,并将其与之前的最大长度进行比较,取较大值。
  7. 如果当前元素与前一个元素的差值不等于1,则表示当前连续序列被打断,更新起始位置l为当前位置i
  8. 循环结束后,返回最大连续序列的长度ans作为结果。
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:10
直接上图
牛客13578115...:改得一般,不值80
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:08
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务