[Leetcode] Longest Consecutive Sequence
来源:互联网 发布:ubuntu安装教程双系统 编辑:程序博客网 时间:2024/04/26 20:10
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.
O(n) 的复杂度。这道题肯定要遍历每个数,那么对每个数的操作时间就是 O(1),考虑用 hashmap。hashmap 的 find 函数复杂度在大多数时间为 O(1)。此处的 hashmap 用的是 STL 中的 unordered_map。
class Solution {public: int longestConsecutive(vector<int> &num) { // Start typing your C/C++ solution below // DO NOT write int main() function // 空间换时间 // Map 的 find 复杂度为 Log // Hashmap 的 find 复杂度为 O(1) if(num.size()==0) return 0; unordered_map <int,int> indexMap; // hashmap int length = 0; int maxLength = 0; for(int i=0;i<num.size();i++) { indexMap[num[i]] = i; } vector<bool> visited(num.size(),false); for(int i=0;i<num.size();i++) { if(visited[i]==true) { continue; } visited[i] = 1; int index = num[i]+1; length = 1; while(indexMap.find(index)!=indexMap.end()) // 复杂度 O(1) { visited[indexMap[index]] = true; length++; index++; } index = num[i]-1; while(indexMap.find(index)!=indexMap.end()) { visited[indexMap[index]] = true; length++; index--; } maxLength = max(maxLength,length); } return maxLength; }};
- 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]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 | Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- Win32应用程序中创建控制台窗口
- ACE_DEBUG的匹配符
- Hooking SpringBoard
- IOS中如何Hook消息
- 读书笔记之《C#入门经典》提高篇
- [Leetcode] Longest Consecutive Sequence
- Xu Hao、Chen Xiaobo:自己手动发现iOS内核缺陷
- iphone越狱Hook
- class-dump 私有API
- 如何装机
- 选购电脑机箱
- javascript 中的null 和undefined
- I3的 2120cpu(盒)自带散热器吗?组装主机还要再配散热器吗
- 新手任务