给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
#include <iostream>
#include <vector>
#include <unordered_set>
int longestConsecutiveSequence(const std::vector<int>& nums) {
std::unordered_set<int> numSet(nums.begin(), nums.end());
int maxLength = 0;
for (int num : numSet) {
// 只考虑当前数字作为序列起点的情况
if (numSet.find(num - 1) == numSet.end()) {
int currentNum

本文介绍了如何使用C++编程语言实现一个时间复杂度为O(n)的算法,寻找给定未排序整数数组中连续序列的最长长度,利用unordered_set高效查找元素并进行连续序列的扩展。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



