Skip to content

Commit 56b1d5c

Browse files
committed
solve: longest consecutive sequence
1 parent 06097f8 commit 56b1d5c

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution {
2+
func longestConsecutive(_ nums: [Int]) -> Int {
3+
guard !nums.isEmpty else { return 0 }
4+
/*
5+
쀑볡 제거 ν›„ μ†ŒνŒ… ν›„ λ°°μ—΄λ‘œ λ§Œλ“œλŠ”κ²ƒμ€ N + NlogN + N 으둜 μ˜ˆμƒλœλ‹€..
6+
κ·Έλž˜μ„œ μ •λ ¬λ§Œ ν•˜κ³  λ‘œμ§μ—μ„œ 쀑볡 μˆ«μžλŠ” κ·Έλƒ₯ λ¬΄μ‹œν•˜κ²Œ λ§Œλ“œλŠ” λ°©μ‹μœΌλ‘œ 속도λ₯Ό κ°œμ„ 
7+
λ¬Έμ œμ—μ„œ O(N)으둜 μž‘μ„±ν•˜μž λΌλŠ” μ œμ•½μ•„λ‹Œ μ œμ•½μ΄ μžˆμ—ˆλŠ”λ°, O(N)은 λ„μ €νžˆ λ– μ˜€λ₯΄μ§€ μ•ŠλŠ”λ‹€.
8+
*/
9+
let nums = nums.sorted()//Array(Set(nums).sorted())
10+
var answer = 1
11+
var count = 1
12+
for index in 0..<nums.count-1 {
13+
if nums[index] - nums[index + 1] == -1 {
14+
count += 1
15+
}
16+
else if nums[index] == nums[index + 1] { continue }
17+
else {
18+
answer = max(answer, count)
19+
count = 1
20+
}
21+
}
22+
return max(answer, count)
23+
}
24+
}

0 commit comments

Comments
Β (0)