LeetCode——最长连续序列
public int longestConsecutive(int[] nums) { int result = 0; Set<Integer> set = new HashSet<>(); for(int i = 0 ; i < nums.length ; i++) { set.add(nums[i]); } for(int i = 0; i < nums.length ; i++) { if(!set.contains(nums[i] -1)) //找到起点 { int curValue = nums[i]; int curLen = 1; while(set.contains(curValue+1)) //寻找最长的连续序列 { curLen++; curValue++; } result = Math.max(result,curLen); } } return result; }
利用Hashset查找元素时间复杂度近似为O(1)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步