128. 最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
示例 1:
输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。
示例 2:
输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9
//排序
func longestConsecutive(nums []int) int {
if len(nums) == 0 {
return 0
}
sort.Ints(nums)
long := 1
lst := 1
tmp := nums[0]
for i, _ := range nums {
if nums[i] == tmp+1 {
long++
lst = max(lst, long)
tmp = nums[i]
} else if nums[i] == tmp {
continue
} else {
long = 1
tmp = nums[i]
}
}
return lst
}
func max(a,b int)int{
if a>b{
return a
}
return b
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。