跳至主要內容

128. 最长连续序列

T4mako算法数组哈希表小于 1 分钟

128. 最长连续序列

中等

题目描述open in new window

解法:

  1. 首先通过 set 将数组去重
  2. 从 set 中取出值 num
    1. 如果 set 中有 num - 1,进入下一次循环
    2. 如果没有,依此在 set 中寻找 num 的连续值,并记录最大长度
class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> num_set = new HashSet<Integer>();
        for (int num : nums) {
            num_set.add(num);
        }
        int longestStreak = 0;
        for (int num : num_set) {
            if (!num_set.contains(num - 1)) {
                int currentNum = num;
                int currentStreak = 1;
                while (num_set.contains(currentNum + 1)) {
                    currentNum += 1;
                    currentStreak += 1;
                }
                longestStreak = Math.max(longestStreak, currentStreak);
            }
        }
        return longestStreak;
    }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5