一、知识点:

HashMap

二、文字分析:

使用哈希表来记录每个牛的标签和其所在的连续序列的长度。当遇到一个牛的标签时,我们首先检查该标签是否已经记录在哈希表中。如果是新的标签,我们检查该标签左右是否存在相邻的标签,计算出当前牛所在的连续序列的长度,并更新哈希表中相关的键值对。

三、编程语言:

java

四、正确代码:

import java.util.*;

public class Solution {
    public int longestConsecutive(int[] tag) {
        Map<Integer, Integer> map = new HashMap<>();
        int longest = 0;

        for (int num : tag) {
            if (!map.containsKey(num)) {
                int left = map.getOrDefault(num - 1, 0);
                int right = map.getOrDefault(num + 1, 0);

                int sum = left + right + 1;
                map.put(num, sum);
                map.put(num - left, sum);
                map.put(num + right, sum);

                longest = Math.max(longest, sum);
            }
        }

        return longest;
    }
}