博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Longest Consecutive Sequence <leetcode>
阅读量:7114 次
发布时间:2019-06-28

本文共 851 字,大约阅读时间需要 2 分钟。

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.

 

算法:这个题第一眼看到想到的是动态规划,先排序,然后用动态规划,求得每个点的连续长度取最大值,这种方法肯定不行,代码也没有通过 提示:required from here

后来在网上搜到一个方法,哈希表,把数组存到哈希表,然后遍历数组,分别在哈希表中向前向后找连续数字,并把找到的关键字从哈希表中删除,因为该值已经没有用了,记录连续区域的长度,与前面记录的最大长度比较。(时间复杂度是O(n))代码如下:

 

1 class Solution { 2 public: 3     set
m; 4 int longestConsecutive(vector
&num) { 5 int len=num.size(); 6 7 int ma=0; 8 for(int i=0;i
::iterator ite;23 while((ite=m.find(nu))!=m.end())24 {25 m.erase(ite);26 ma++;27 if(asc) nu--; else nu++;28 }29 return ma;30 }31 32 };

 

转载于:https://www.cnblogs.com/sqxw/p/3972359.html

你可能感兴趣的文章
js设计模式 --- 装饰设计模式
查看>>
Flask源代码阅读笔记(一)——应用启动
查看>>
IOS精品源码,仿探探UIButton封装iOS提示弹框迅速引导页自定义导航栏
查看>>
setState的一个Synthetic Event Warning
查看>>
通读Python官方文档之wsgiref(未完成)
查看>>
2017回顾
查看>>
Maven3 快速入门
查看>>
《编写可读代码的艺术》——表面层次的改进
查看>>
RxJS Observable - 一个奇特的函数
查看>>
大型WEB架构设计
查看>>
小程序TAB列表切换内容动态变化,scrollview高度根据内容动态获取
查看>>
swoole_table 实现原理剖析
查看>>
你需要知道面试中的10个JavaScript概念
查看>>
TiDB RC4 Release
查看>>
阿里云有对手了!CDN横评:腾讯云优势明显
查看>>
Ajax常用方法
查看>>
Glide 简单流程分析
查看>>
Hmily 2.0.3 发布,高性能异步分布式事务 TCC 框架
查看>>
烟花年下岁月
查看>>
Java源码阅读之HashMap - JDK1.8
查看>>