给定一个未排序的整数数组,找出最长连续序列的长度
时间: 2023-04-24 16:00:18 浏览: 115
python-leetcode面试题解之第128题最长连续序列-题解.zip
题目描述:
给定一个未排序的整数数组,找出最长连续序列的长度。
例如:
输入:[100, 4, 200, 1, 3, 2]
输出:4
解释:最长连续序列是 [1, 2, 3, 4]。因此,输出结果为 4。
思路:
我们可以使用哈希表来解决这个问题。首先,我们将所有的数字存入哈希表中。然后,我们遍历数组中的每个数字,如果该数字在哈希表中存在,那么我们就从该数字开始向左和向右扩展,直到不再存在于哈希表中为止。我们可以使用一个变量来记录当前连续序列的长度,以及一个变量来记录最长连续序列的长度。
代码实现:
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
unordered_set<int> hashSet;
for (int num : nums) {
hashSet.insert(num);
}
int longestStreak = 0;
for (int num : nums) {
if (hashSet.find(num - 1) == hashSet.end()) {
int currentNum = num;
int currentStreak = 1;
while (hashSet.find(currentNum + 1) != hashSet.end()) {
currentNum++;
currentStreak++;
}
longestStreak = max(longestStreak, currentStreak);
}
}
return longestStreak;
}
};
阅读全文