[leetcode] 【数组】128. Longest Consecutive Sequence
2016-05-22 02:03
711 查看
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)要求的话,可以想到借助哈希表来标注,这样遍历每个数时分别往前、往后找就可以找到连续的数字。
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(n)要求的话,可以想到借助哈希表来标注,这样遍历每个数时分别往前、往后找就可以找到连续的数字。
//cpp class Solution { public: int longestConsecutive(vector<int>& nums) { map<int,bool> isused; for(auto i :nums) isused[i]=false; int longest=0; for(auto i:nums) { if(isused[i]) continue; int len=1; isused[i]=true; for(int j=i+1;isused.find(j)!=isused.end();j++) { len++; isused[j]=true; } for(int j=i-1;isused.find(j)!=isused.end();j--) { len++; isused[j]=true; } longest=max(longest,len); } return longest; } };
相关文章推荐
- 基于Vue.js的表格分页组件
- 关于easyui整合polymer中tab切换页面不匹配的解决(更新中)
- Android中在子线程中更新UI的三种方式
- Android Studio 中build.gradle文件的详细解析
- iOS 3D Touch 实现UITableViewCell 预览
- Ubuntu使用sudo命令出现must be setuid root错误的解决方法
- 60. Permutation Sequence
- LeetCode 63. Unique Paths II(唯一路径)
- LeetCode 62. Unique Paths
- UISplitViewController 分屏控制器
- UITableView初识(1)
- UITableView--多组数据显示
- 从技术实现角度看Android UI设计
- Arduino 和 MQ-135 空气污染气体传感器 实验
- iOS学习之UIView
- 29.UITabBarController
- Hive ORC和Parquet
- 【Leetcode】Longest Increasing Subsequence
- iOS中常用UI层方法总结
- iOS开发 ☞ UITextField 详解