Skip to content

Commit d7bf9b6

Browse files
committed
solve longest consecutive sequence
1 parent ad607f4 commit d7bf9b6

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
func longestConsecutive(_ nums: [Int]) -> Int {
3+
if nums.isEmpty { return 0 }
4+
// .isEmpty ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜๊ฐ€ 0์ผ ์‹œ ๋ฐ”๋กœ 0์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
5+
// ์‹œ๊ฐ„๋ณต์žก๋„ O(1)
6+
var maxCount = 0
7+
var count = 1
8+
var prefixNumber = nums.sorted().first ?? 0
9+
for num in nums.sorted(by: <) {
10+
// nums ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ฆฌ ํ›„ ๋ฐ˜๋ณต๋ฌธ์„ ๋ฃจํ”„ํ•ฉ๋‹ˆ๋‹ค.
11+
// .sorted ์‹œ๊ฐ„๋ณต์žก๋„ O(n log n)
12+
// for๋ฌธ ์‹œ๊ฐ„๋ณต์žก๋„ O(n)
13+
if prefixNumber == num {
14+
continue
15+
} else if prefixNumber + 1 == num {
16+
count += 1
17+
prefixNumber = num
18+
} else {
19+
maxCount = max(maxCount, count)
20+
count = 1
21+
prefixNumber = num
22+
}
23+
}
24+
return max(maxCount, count)
25+
}
26+
}

0 commit comments

Comments
ย (0)