Longest Consecutive Sequence
2016-08-31 15:19
190 查看
一、问题描述
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
For example,
Given
The longest consecutive elements sequence is
Your algorithm should run in O(n) complexity.
二、思路
本题题意是求出最大的连续序列的长度。我们先对数组排序,然后遍历整个数组,遇到相同元素,跳过,遇到满足连续特性的数组,我们将临时变量加一,遇到不满足条件的元素,我们首先判断当前临时变量是否大于等于最大长度,如果满足,则更新max_len,同时不管是否满足条件都将临时变量置一,意味着重新开始。最后挑出循环后继续判断临时变量是否大于最大长度,如果大于,则需要更新最大长度。
三、代码
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
sort(nums.begin(), nums.end());
int temp = 1, max_len = 1;
for(int i = 1; i < nums.size(); ++i){
if(nums[i] == nums[i - 1])
continue;
else if(nums[i - 1] + 1 == nums[i]){
temp++;
}else{
if(temp >= max_len){
max_len = temp;
}
temp = 1;
}
}
if(temp > max_len){
max_len = temp;
}
return max_len;
}
};
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
For example,
Given
[100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is
[1, 2, 3, 4]. Return its length:
4.
Your algorithm should run in O(n) complexity.
二、思路
本题题意是求出最大的连续序列的长度。我们先对数组排序,然后遍历整个数组,遇到相同元素,跳过,遇到满足连续特性的数组,我们将临时变量加一,遇到不满足条件的元素,我们首先判断当前临时变量是否大于等于最大长度,如果满足,则更新max_len,同时不管是否满足条件都将临时变量置一,意味着重新开始。最后挑出循环后继续判断临时变量是否大于最大长度,如果大于,则需要更新最大长度。
三、代码
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
sort(nums.begin(), nums.end());
int temp = 1, max_len = 1;
for(int i = 1; i < nums.size(); ++i){
if(nums[i] == nums[i - 1])
continue;
else if(nums[i - 1] + 1 == nums[i]){
temp++;
}else{
if(temp >= max_len){
max_len = temp;
}
temp = 1;
}
}
if(temp > max_len){
max_len = temp;
}
return max_len;
}
};
相关文章推荐
- LeetCode:Longest Consecutive Sequence
- leetcode 最长连续序列 longest consecutive sequence
- Longest Consecutive Sequence——Leetcode
- LeetCode -- Longest Consecutive Sequence
- LeetCode----Longest Consecutive Sequence
- 549. Binary Tree Longest Consecutive Sequence II
- LeetCode Longest Consecutive Sequence
- [LeetCode] Longest Consecutive Sequence
- LeetCode:Longest Consecutive Sequence
- [LeetCode]Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- Leetcode::Longest Consecutive Sequence
- 【LeetCode with Python】 Longest Consecutive Sequence
- Leetcode之Longest Consecutive Sequence
- leetcode 刷题之路 6 Longest Consecutive Sequence
- [leetcode] Longest Consecutive Sequence
- 【Leetcode长征系列】Longest Consecutive Sequence
- LeetCode:2.1.6 Longest Consecutive Sequence
- Longest Consecutive Sequence
- Leetcode - Longest Consecutive Sequence