LeetCode-128-最長(zhǎng)連續(xù)序列

請(qǐng)你設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為 O(n) 的算法解決此問(wèn)題。
示例說(shuō)明請(qǐng)見(jiàn)LeetCode官網(wǎng)。
來(lái)源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/longest-consecutive-sequence/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:哈希表
因?yàn)楣2檎冶容^快,所以用哈希表來(lái)輔助計(jì)算,具體處理過(guò)程如下:
首先,用HashSet將原數(shù)組中的數(shù)字去重得到numsSet;
然后,遍歷numsSet中的所有數(shù)字,用currentConsecutiveNums記錄以當(dāng)前數(shù)字為起點(diǎn),連續(xù)的數(shù)且在numsSet中的最長(zhǎng)序列長(zhǎng)度,通過(guò)哈希查找在numsSet中查找這些連續(xù)的數(shù)字,最后得到當(dāng)前數(shù)字對(duì)應(yīng)的最長(zhǎng)連續(xù)序列長(zhǎng)度;
如果當(dāng)前數(shù)字對(duì)應(yīng)的最長(zhǎng)連續(xù)序列長(zhǎng)度比已知的最長(zhǎng)連續(xù)序列l(wèi)ongestConsecutiveNums大,則更新最長(zhǎng)連續(xù)序列l(wèi)ongestConsecutiveNums的值。
最后,返回longestConsecutiveNums即為連續(xù)的最長(zhǎng)序列的長(zhǎng)度。
【每日寄語(yǔ)】 第一個(gè)青春是上帝給的;第二個(gè)的青春是靠自己努力的。