leetcode:数组之Longest Consecutive Sequence
来源:互联网 发布:python 类的使用 编辑:程序博客网 时间:2024/06/07 02:30
leetcode:数组之Longest Consecutive Sequence,
给定一个乱序的数组,输出数组中连续的序列长度,例如,输入a=[100,4,200,1,3,2],输出最大连续序列长度length=4;
分析:由于数组为无序数组,则首先想到哈希表,即利用一个哈希表unordered_map<int,bool> used 记录每个元素是否使用,对每个元素,以该元素为中心,向左右扩张,直到不连续为止,记录最长的长度。
实现:
#include <iostream>#include <vector>#include <unordered_map>using namespace std;int longestConsecutive(vector<int> num){unordered_map<int,bool> used;for(auto i:num) used[i]=false;int longest=0;for(auto i:num){if(used[i]) continue;int length=1;used[i]=true;for(int j=i+1;used.find(j)!=used.end();++j){used[j]=true;++length;}for(int j=i-1;used.find(j)!=used.end();--j){used[j]=true;++length;}longest =max (longest,length);}return longest;}int main(){int a[6]={100,4,200,1,3,2};vector<int> arr(a,a+6);int length=0;length=longestConsecutive(arr);cout<<"最长有序序列的长度为:"<<length<<endl;return 0;}测试结果:
0 0
- 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] 【数组】128. 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
- linux-文件类型
- OpenCV历史
- ARC下OC对象和CF对象之间的桥接(bridge)
- 最少步数 NYOJ 58
- 判断数组中包含重复数(大数中取重复)
- leetcode:数组之Longest Consecutive Sequence
- 【二叉树】一条龙输出
- 网站上简单的渐变色用法
- httpclient3.x请求https的实例:
- AFNetwork 作用和用法详解
- find the nth digit
- hdu 5739(点双连通)
- 题目204 Coin Test
- SQLyong的安装及使用