LeetCode 128. 最长连续序列(哈希set)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 128. 最长连续序列(哈希set)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個未排序的整數數組,找出最長連續序列的長度。
要求算法的時間復雜度為 O(n)。
示例:輸入: [100, 4, 200, 1, 3, 2] 輸出: 4 解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度為 4。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-consecutive-sequence
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 哈希set解題
- 先將所有的數插入哈希set
- 遍歷每個數字,如果num-1不在set中(即num是起點,才開始計算長度)
- 循環查找num+1在set中嗎?長度+1
- 更新最大的長度
由于哈希的插入和查找是O(1)的時間復雜度,所以本題時間復雜度為O(n)
總結
以上是生活随笔為你收集整理的LeetCode 128. 最长连续序列(哈希set)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 63. 不同路径 II
- 下一篇: LeetCode 130. 被围绕的区域