LeetCode 128. 最长连续序列 golang
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 128. 最长连续序列 golang
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
128. 最長連續(xù)序列
【困難】
給定一個未排序的整數(shù)數(shù)組,找出最長連續(xù)序列的長度。
要求算法的時間復(fù)雜度為 O(n)。
示例:
輸入: [100, 4, 200, 1, 3, 2]
輸出: 4
解釋: 最長連續(xù)序列是 [1, 2, 3, 4]。它的長度為 4。
Code
// 解題思路 // 將所有nums中元素錄入numMap // 對每個numMap中元素,檢測是否是第一個起始元素,如果不是起始元素,skip;如果是,對該元素循環(huán)+1從numMap找到該元素對應(yīng)的最長currentLength // longest = max(longest, currentLength) // 代碼 func longestConsecutive(nums []int) int {numMap := make(map[int]bool)for _, number := range nums {numMap[number] = true}longest := 0for k, _ := range numMap {if _, prs := numMap[k-1]; prs {continue}currentLength := 1for {if _, prs1 := numMap[k+1]; !prs1 {break}currentLength++k++}longest = max(longest, currentLength)}return longest }func max(i, j int) int {if i > j {return i}return j }總結(jié)
以上是生活随笔為你收集整理的LeetCode 128. 最长连续序列 golang的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 热血主妇名侦探剧情介绍
- 下一篇: 刺客信条英灵殿索尔套装怎么获得