leetcode-128. 最长连续序列
-
-
然后,设集合中的某个数为a。遍历集合set
-
假如这个集合中,存在a-1,说明a不是一个序列的起始值,跳过
-
如果不存在a-1,说明a是一个连续序列的起始值,再从a开始顺着往下找连续序列,也就是寻找set有无a++,如果有a++就说明连续,temp长度+1
-
-
public int longestConsecutive(int[] nums) { HashSet<Integer> set = new HashSet<>();//新建hashset,去重 int res = 0;//最终连续序列的长度 for(int num : nums){//把所有数都添加进set set.add(num); } for(int a : set){ if(set.contains(a - 1)){//如果有a-1就说明 a不是某个连续序列的开头,由于本判断,所有数字在本次循环里只遍历了一遍,时间复杂度O(N) continue; } int temp = 0; //用来记录遍历到a时连续序列的长度 while(set.contains(a++)){//如果set中没有a-1,说明a是某个连续序列的开头,在set中寻找有无a++,如果有就说明有连续序列 temp++; } res = Math.max(temp, res);//维护整体最大值和本次序列最大值 } return res; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix