leetcode.128. Longest Consecutive Sequence
2016-05-24 11:19
453 查看
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.
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
int ret = 0;
unordered_map<int, bool> m;
for(int i = 0; i < nums.size(); i ++)
m[nums[i]] = false;
for(int i = 0; i < nums.size(); i ++)
{
if(m[nums[i]] == false)
{
int cur = 1;
int left = nums[i]-1;
while(m.find(left) != m.end() && m[left] == false && left >= INT_MIN)
{
m[left] = true;
cur ++;
left --;
}
int right = nums[i]+1;
while(m.find(right) != m.end() && m[right] == false && right <= INT_MAX)
{
m[right] = true;
cur ++;
right ++;
}
ret = max(ret, cur);
}
}
return ret;
}
};
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.
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
int ret = 0;
unordered_map<int, bool> m;
for(int i = 0; i < nums.size(); i ++)
m[nums[i]] = false;
for(int i = 0; i < nums.size(); i ++)
{
if(m[nums[i]] == false)
{
int cur = 1;
int left = nums[i]-1;
while(m.find(left) != m.end() && m[left] == false && left >= INT_MIN)
{
m[left] = true;
cur ++;
left --;
}
int right = nums[i]+1;
while(m.find(right) != m.end() && m[right] == false && right <= INT_MAX)
{
m[right] = true;
cur ++;
right ++;
}
ret = max(ret, cur);
}
}
return ret;
}
};
相关文章推荐
- Android异步更新UI的四种方式
- iOS项目打包 Archive UUID
- Android 在非主线程中更新UI也能成功原因详解
- easyui datagrid使用问题和解决办法总结
- Continue ,Break,Return这三个关键字的区别
- U3D UI坐标换算和屏幕适配计算方法
- VC调用QT的UIDLL
- iOS开发 正确限制UITextField(UITextView)输入位数
- QT UI获得控件ID(HWND)
- 平时收集的一些有关UED的团队和个人博客
- android中子线程更新UI的方式浅析
- Android Volley完全解析(三),定制自己的Request
- UIActionSheet
- IDEA菜单项中Compile、Make和Build的区别
- iOS开发UI篇-UITabBarController简单介绍
- 发现Vue.js做前端交互不错,非常轻量级
- [UIScreen MainScreen].bounds.size获取屏幕尺寸不准确
- UITextField使用方法
- MySQL增加Sequence管理功能
- 开源UI