求数组中最长的连续序列(Longest Consecutive Sequence )
来源:互联网 发布:燕郊招聘网络推广 编辑:程序博客网 时间:2024/04/29 06:45
给定一组数据num[]
4,7,8,1,2,3
那么数组中的最长连续序列为1,2,3,4, length为4
一般的做法肯定都想到了用一个排序,然后求有序数组中的最长连续序列,时间复杂度为 o(n)+o(logn)
如果要求时间复杂度为o(n)的话,这种方法肯定行不通。
想到,可以将数组投影到一个连续的区间,
如 令 a[num[i]]++,这样来判断a[]中的最长连续的序列。刚开始我用了数组,但是如果num中出现了负数,肯定不行,所以用一个比较通用的unordered_map<int,int>来投影数组num
代码如下:
<span style="font-size:18px;">class Solution {public: int longestConsecutive(vector<int> &num) { if(num.size()==1) return 1; unordered_map<int,int> mp; int i; int j; int temp=0; for(i=0;i<num.size();i++) { mp[num[i]]=1; } for(i=0;i<num.size();i++) { int sum=1; if(mp.count(num[i])) { int left=num[i]-1; while(mp.count(left)&&mp[left]!=0) { mp[left--]=0; sum++; } int right=num[i]+1; while(mp.count(right)&&mp[right]!=0) { mp[right++]=0; sum++; } } if(sum>temp) temp=sum; } return temp; }};</span>
0 0
- 数组中最长的连续序列(longest consecutive sequence)
- 求数组中最长的连续序列(Longest Consecutive Sequence )
- longest-consecutive-sequence,数组中最长的连续序列
- Longest Consecutive Sequence(最长连续序列)
- leetcode 最长连续序列 longest consecutive sequence
- Longest Consecutive Sequence 最长连续子序列
- LeetCode(Longest Consecutive Sequence ) 最长连续序列
- Longest Consecutive Sequence 最长连续子序列
- *[Lintcode]Longest Consecutive Sequence最长连续序列
- Longest Consecutive Sequence最长连续序列
- 一个无序整数数组中找到最长连续序列(Longest Consecutive Sequence)和两个元素使得相差最小
- 在无序序列中找出最长的连续序列 Longest Consecutive Sequence
- Longest Consecutive Sequence (最长连续序列) 【面试算法leetcode】
- LeetCode | Longest Consecutive Sequence(最长连续序列)
- LeetCode 128. Longest Consecutive Sequence(最长连续序列)
- 124.Longest Consecutive Sequence-最长连续序列(中等题)
- 128. Longest Consecutive Sequence(最长连续序列)
- LeetCode--Longest Consecutive Sequence(最长连续序列)Python
- hihocoder第16周(RMQ-ST算法)
- 协议栈处理中的conntrack HASH查找/Bloom过滤/CACHE查找/大包与小包/分层处理风格
- 一个项目引出的对ORACLE中带参视图、存储过程、函数、程序包的使用
- 平衡查找树之红黑树
- POJ 1113 Wall (凸包)
- 求数组中最长的连续序列(Longest Consecutive Sequence )
- Android学习-自定义ListView中的分割线
- 李平:大型网站的灵魂——性能
- 正确选择数据类型
- 基于水平集方法和G0模型的SAR图像分割
- 《Java并发编程实战》---性能与可伸缩性---显式锁
- 4.2版本与4.4版本文件路径不同
- 利用Visual studio 编译 ffmpge
- 详解Android中AsyncTask的使用