码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode】128. 最长连续序列

时间:2019-03-13 12:17:10      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:.so   enum   sort   整数   最大   seq   for   i+1   int   

题目

给定一个未排序的整数数组,找出最长连续序列的长度、
要求算法的时间复杂度为O(n).

示例

输入:[100, 4, 200, 1, 3, 2]
输出:4
解释:最长连续序列是[1, 2,  3, 4]。它的长度为4

思路

思路一

  1. 先由小到大进行排序
  2. 考虑三种情况:
    1. 前后相差1,则是连续序列
    2. 前后相等,循环continue
    3. 最后一个元素,break

代码


def longestConsecutive(nums) -> int:
????if nums:
????????nums.sort()
????????#print(nums)
????????ans = [] #储存最大序列
????????max_seq = 1
????????for i, val in enumerate(nums):
????????????#print("序号:%s 值:%s"%(i, val)) 序号从零开始
????????????if(i == len(nums) - 1):
????????????????ans.append(max_seq)
????????????????break;
????????????if(nums[i] == nums[i+1]):
????????????????continue
????????????if(nums[i] - nums[i+1] == -1):
????????????????max_seq += 1
????????????else:
????????????????ans.append(max_seq)
????????????????max_seq = 1
????????return max(ans)
????else:
????????return 0
if __name__ == "__main__":
????nums = [100, 4, 200, 1, 3, 2]
????print(longestConsecutive(nums))

【LeetCode】128. 最长连续序列

标签:.so   enum   sort   整数   最大   seq   for   i+1   int   

原文地址:https://www.cnblogs.com/wemo/p/10522002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!