LeetCode:128. 最长连续序列 简介题目链接https://leetcode.cn/problems/longest-consecutive-sequence/description/解决方式数组 哈希集合这是作者学习众多大神的思路进行解题的步骤很推荐大家解题的时候去看看题解里面大佬们的思路、想法哈希集合思路解决方法很朴素就是迭代元素查看当前迭代元素 1 是否存在存在则连续序列 1。不过我们不是在数组中迭代而是在哈希集合中迭代。好处是能够去除数组中的重复元素、快速判断元素是否存在集合中。我们在遍历集合还需要注意一点需查找某一连续序列的头防止后续出现重复查找。推荐看灵茶山艾府大佬的题解classSolution{// 核心思想就是找到序列的起点然后判断后面的连续数字在不在集合中publicintlongestConsecutive(int[]nums){// 使用 HashSet 集合实现去重和快速查找HashSetIntegerstnewHashSet();for(inti:nums){// 将数组元素全部放在集合中去重方便后续快速查找st.add(i);}// 迭代集合避免迭代数组造成迭代相同的元素intans0;// 存储最长连续序列的长度for(intx:st){// 判断 x-1 的元素在不在集合中在则跳过该次迭代// 因为以 x-1 为起点的连续序列一定比以 x 为起点的连续序列要长if(st.contains(x-1)){continue;}// 当前 x 为连续队列的起点看看后面的连续数字在不在集合中intyx1;while(st.contains(y)){// 在则一直向后找y;}// 在集合中找完了就比对哪次的连续序列最长ansMath.max(ans,y-x);}returnans;}}