做网站申请域名大概花费多少,登封做网站优化,网站空间商是什么,个人网页设计的方法【哈希表】No. 0128 最长连续序列【中等】#x1f449;力扣对应题目指路 希望对你有帮助呀#xff01;#xff01;#x1f49c;#x1f49c; 如有更好理解的思路#xff0c;欢迎大家留言补充 ~ 一起加油叭 #x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持力扣对应题目指路 希望对你有帮助呀 如有更好理解的思路欢迎大家留言补充 ~ 一起加油叭 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持 ⭐ 题目描述给定一个未排序的整数数组 nums 找出数字连续的最长序列不要求序列元素在原数组中连续的长度
请你设计并实现时间复杂度为 O(n) 的算法解决此问题示例nums [100,4,200,1,3,2] 输出4 解释最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4 思路对于每个潜在的序列头元素 n (即找不到 n-1) 依次寻找 n1, n2, ... 直到找不到下一个得到潜在最长连续序列长度 要求时间复杂度为 O(n)所以要利用哈希表来实现 O(1) 的单次搜索复杂度 参考如上思路给出详细步骤如下 步骤一⭐构建 nums 对应的 哈希表本文用 set步骤二⭐找到每个潜在的序列头元素 n步骤三⭐获取以 n 为序列头元素的 (当前) 最长连续序列长度步骤四⭐ 更新全局最长连续序列长度 class Solution:def longestConsecutive(self, nums: List[int]) - int:nums set(nums) # ---------------------- step 1result 0for n in nums:if not n-1 in nums: # --------------- step 2# -------------------------------- step 3temp_len 1while n1 in nums:temp_len 1n 1# -------------------------------- step 4result max(result, temp_len)return result希望对你有帮助呀 如有更好理解的思路欢迎大家留言补充 ~ 一起加油叭 LeetCode 热题 HOT 100