def longest_consecutive(nums): if not nums: return 0 转为集合,便于O(1)时间判断元素是否存在 num_set = set(nums) max_length = 0 for num in num_set: 只从连续序列的起点开始计算(即num-1不在集合中) if num - 1 not in num_set: current_num = num current_length = 1 while current_num + 1 in num_set: current_num += 1 current_length += 1 max_length = max(max_length, current_length) return max_length print(longest_consecutive([100, 200, 1, 2, 3, 90, 4]))