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

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

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.

小疑问:为什么map的迭代器没有重载+操作符,而只能自加或者自减

解决:1.因为vector支持通过元素位置实现随机访问,所以他的迭代器可以进行算术运算。map不可以。

2.对于vector等支持随机访问的效果上没有差别,但是这两者的意义不同,一般的容器都重载了迭代器的++ --操作符,但如果容器不支持元素位置的随机访

问(此时重载的++意思是指向下一个元素,但这个元素的物理位置不一定和当前相连),是不可以进行迭代器的算术操作的(+n操作)。

 


 

代码:

class Solution {public:    int longestConsecutive(vector
&num) { if(num.size()==0) return 0; map
m; for(int i=0;i
::iterator it=m.begin(); map
::iterator end=--m.end(); while(it!=end) { if(abs((it->first-(++it)->first))==1){ ++tempRes; }else{ if(tempRes>res) res=tempRes; tempRes=1; } } if(tempRes>res) res=tempRes; return res; }};

 

转载于:https://www.cnblogs.com/fightformylife/p/4221455.html

你可能感兴趣的文章
matlab中find函数的使用说明
查看>>
这是一张很有趣的图片, 通常女性会先看到月亮, 男性会先看到人脸. 如果相反, 表示你体内的异性荷尔蒙偏高哦!...
查看>>
SGU 403 Game with points
查看>>
2014中国软件开发者调查(一):Java最受欢迎 第二语言JS使用比例最高
查看>>
三级管的原理
查看>>
Java基础—ClassLoader的理解
查看>>
Android App监听软键盘按键的三种方式(转)
查看>>
2、Android应用程序基本特性
查看>>
Android开发之Buidler模式初探结合AlertDialog.Builder解说
查看>>
bash shell命令(2)
查看>>
html中#include file的使用方法
查看>>
eclipse: Program "g++" not found in PATH
查看>>
Python基础(11)--面向对象1
查看>>
银行家算法
查看>>
Spring 的@Scheduled注解实现定时任务运行和调度
查看>>
Oracle笔记 四、增删改、事务
查看>>
PreTranslateMessage作用和用法
查看>>
微信支付开发教程
查看>>
一款免费好用的正则表达式工具:Regex Match Tracer
查看>>
jquery.min.map 404 (Not Found)出错的原因及解决办法
查看>>