【题目】:128. 最长连续序列
class Solution { |
- 时间复杂度: O(n)
- 空间复杂度: O(n)
可以把这题理解成,有好多条不同长度的线段,要找到最长那条线,只需要找到所有线的线段头,从头开始计算。
例如:**[100,4,101,200,1,3,2]**
本题一共有三条线段,分别是:100,101
和200
和1,2,3,4
,先把这些数存在set中,遍历set。
如果遍历到2,先判断2前面是否还有数字,由于2前边还有,说明2不是开头,直接跳过后续操作。
如果遍历到1,1前边已经没有数字了,说明1就是开头,从头开始计算,看看这个线段长度是多长。
这里虽然是两个循环,但是内循环只有遍历到线段头的时候才会执行,所以时间复杂度为O(n)