File tree Expand file tree Collapse file tree 2 files changed +49
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution :
2+ """
3+ nums를 내림차순 sort하고, 차례대로 두 개의 차가 다음 차가 같다면 + 1
4+ 처음 차는 diff 변수에 저장하고, 진행되면서 diff를 업데이트
5+ 200, 100, 4, 3, 2, 1
6+
7+ 연속된 수열이라고 하여 1 이외의 다른 수가 올 수 있을 것이라고 판단하였지만 차이가 1로 나온다는 것을 확인
8+
9+ - TC
10+ - set(nums) -> O(n)
11+ - for -> O(n)
12+ - while -> O(n)
13+ - 전체 -> O(n)
14+ - SC
15+ - num_set -> O(n)
16+ - 다른 변수들 -> O(1)
17+ - 전체 -> O(n)
18+ """
19+ def longestConsecutive (self , nums : List [int ]) -> int :
20+ num_set = set (nums )
21+ longest = 0
22+
23+ for num in num_set :
24+ if num - 1 not in num_set :
25+ k = 1
26+
27+ while num + k in num_set :
28+ k += 1
29+
30+ longest = max (longest , k )
31+ return longest
Original file line number Diff line number Diff line change 1+ from collections import Counter
2+
3+ class Solution :
4+ """
5+ - TC
6+ - Counter(nums): O(n)
7+ - sorted(): O(n log n)
8+ - 슬라이싱 및 리스트 변환: O(k)
9+ - 전체: O(n log n)
10+ - SP
11+ - Counter 및 정렬된 딕셔너리 저장: O(n)
12+ - 반환 리스트: O(k)
13+ - 전체: O(n)
14+ """
15+ def topKFrequent (self , nums : List [int ], k : int ) -> List [int ]:
16+ count_nums = Counter (nums )
17+ count_nums = dict (sorted (count_nums .items (), reverse = True , key = lambda x : x [1 ])).keys ()
18+ return list (count_nums )[:k ]
You can’t perform that action at this time.
0 commit comments