LeetCode:Longest Consecutive Sequence
2015-03-30 20:30
211 查看
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.
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.
// https://oj.leetcode.com/problems/longest-consecutive-sequence/ // Author : Chao Zeng // Date : 2015-3-30 class Solution { public: int longestConsecutive(vector<int> &num) { map<int,int> mp; const int NUM = 100;//由于数据中存在负数,所以数组元素加一个偏移量,保证数组下标有效性 int length = num.size(); for (int i = 0; i < length; i++){ mp[num[i] + NUM] = 1; } int ans; int res = 0; for (int i = 0; i < length; i++){ ans = 1; if (mp.count(num[i] + NUM)){ int left = num[i] + NUM - 1; while (mp.count(left) && mp[left] != 0){ mp[left--] = 0; ans++; } int right = num[i] + NUM + 1; while (mp.count(right) && mp[right] != 0){ mp[right++] = 0; ans++; } } if (res < ans){ res = ans; } } return res; } };
相关文章推荐
- LeetCode | Longest Consecutive Sequence(最长连续序列)
- [LeetCode] Longest Consecutive Sequence
- [LeetCode] Longest Consecutive Sequence
- LeetCode: Longest Consecutive Sequence
- [Leetcode] Longest consecutive sequence 最长连续序列
- LeetCode_Longest Consecutive Sequence
- LeetCode:Longest Consecutive Sequence
- LeetCode Longest Consecutive Sequence
- [LeetCode] Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之二
- leetcode第一刷_Longest Consecutive Sequence
- [LeetCode] Longest Consecutive Sequence
- LeetCode——Longest Consecutive Sequence
- Leetcode Longest Consecutive Sequence
- Leetcode-Longest Consecutive Sequence
- leetCode_Longest Consecutive Sequence
- Leetcode: Longest Consecutive Sequence && Summary: Iterator用法以及ConcurrentModificationException错误说明
- LeetCode——Longest Consecutive Sequence
- leetcode_Longest Consecutive Sequence
- [LeetCode]Longest Consecutive Sequence
- LeetCode: Longest Consecutive Sequence [128]