LeetCode 128: Longest Consecutive Sequence
2013-09-07 21:13
411 查看
Difficulty: 4
Frequency: 3
Problem:
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.
Solution:
class Solution {
public:
int longestConsecutive(vector<int> &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
set<int> numSet;
for(int i = 0; i<num.size(); i++)
{
numSet.insert(num[i]);
}
int answer = 0;
for(int i = 0; i<num.size()&&numSet.size()>answer; i++)
{
int i_count = 0;
if (numSet.find(num[i])!=numSet.end())
{
++i_count;
int val = num[i];
while(numSet.find(++val)!=numSet.end())
{
++i_count;
numSet.erase(val);
}
val = num[i];
while(numSet.find(--val)!=numSet.end())
{
++i_count;
numSet.erase(val);
}
answer = answer>i_count?answer:i_count;
}
}
return answer;
}
};
Notes:
This algorithm is really easy if you can think of hashmap. This is the beginning I learn how to use hashmap. Quoted from others blog:"When it concerning O(n) time with unsorted data, think about hashmap."
Frequency: 3
Problem:
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.
Solution:
class Solution {
public:
int longestConsecutive(vector<int> &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
set<int> numSet;
for(int i = 0; i<num.size(); i++)
{
numSet.insert(num[i]);
}
int answer = 0;
for(int i = 0; i<num.size()&&numSet.size()>answer; i++)
{
int i_count = 0;
if (numSet.find(num[i])!=numSet.end())
{
++i_count;
int val = num[i];
while(numSet.find(++val)!=numSet.end())
{
++i_count;
numSet.erase(val);
}
val = num[i];
while(numSet.find(--val)!=numSet.end())
{
++i_count;
numSet.erase(val);
}
answer = answer>i_count?answer:i_count;
}
}
return answer;
}
};
Notes:
This algorithm is really easy if you can think of hashmap. This is the beginning I learn how to use hashmap. Quoted from others blog:"When it concerning O(n) time with unsorted data, think about hashmap."
相关文章推荐
- [LeetCode-Algorithms-128] "Longest Consecutive Sequence" (2017.12.14-WEEK15)
- Leetcode_128_Longest Consecutive Sequence
- leetcode128 Longest Consecutive Sequence (map)
- LeetCode(128)Longest Consecutive Sequence
- LeetCode 128: Longest Consecutive Sequence
- LeetCode: Longest Consecutive Sequence [128]
- LeetCode 128 Longest Consecutive Sequence
- leetcode 128. Longest Consecutive Sequence .
- leetcode[128]Longest Consecutive Sequence
- [Leetcode 128] Longest Consecutive Sequence
- Longest Consecutive Sequence - LeetCode 128
- LeetCode 128 Longest Consecutive Sequence
- [LeetCode 128] - 最长连续序列(Longest Consecutive Sequence)
- LeetCode128:Longest Consecutive Sequence
- Leetcode 128 Longest Consecutive Sequence
- [LeetCode 128] - 最长连续序列(Longest Consecutive Sequence)
- leetcode || 128、Longest Consecutive Sequence
- LeetCode 128 Longest Consecutive Sequence
- Leetcode#128 Longest Consecutive Sequence
- [LeetCode#128]Longest Consecutive Sequence