File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * 가장 긴 연속의 시퀀스 구하기
3
+ * @param nums
4
+ */
5
+ function longestConsecutive ( nums : number [ ] ) : number {
6
+
7
+ // length 가 0, 1 인 경우
8
+ if ( nums . length < 2 )
9
+ return nums . length ; // 0, 1
10
+
11
+ // 정렬
12
+ nums = nums . sort ( ( a , b ) => a - b )
13
+
14
+ // 접근 (1) 처음 연속된 count만 리턴함 =============
15
+ // let count = 1
16
+ // for(let i = 0; i < nums.length-1; i++) {
17
+ // if(nums[i] === nums[i+1]) {
18
+ // continue;
19
+ // } else if(nums[i] - nums[i+1] === 1) {
20
+ // count++;
21
+ // } else {
22
+ // break;
23
+ // }
24
+ // };
25
+ // console.log(count);
26
+ // return count;
27
+
28
+ // =========
29
+
30
+ let longest = 0 ;
31
+ let temp = 1 ;
32
+
33
+ for ( let i = 0 ; i < nums . length - 1 ; i ++ ) {
34
+ if ( nums [ i ] === nums [ i + 1 ] ) {
35
+ // console.log(nums[i], '===', nums[i+1])
36
+ continue ;
37
+ } else if ( nums [ i ] + 1 === nums [ i + 1 ] ) {
38
+ // console.log(nums[i], '+ 1 =', nums[i+1])
39
+ temp += 1 ;
40
+ } else {
41
+ // console.log(longest, ' - ', temp)
42
+ longest = Math . max ( temp , longest ) ;
43
+ temp = 1 ;
44
+ }
45
+ }
46
+
47
+ // i가 마지막인 경우 for문의 else문을 타지 않으므로 다시 한번 체크함
48
+ longest = Math . max ( temp , longest ) ;
49
+ return longest ;
50
+ } ;
You can’t perform that action at this time.
0 commit comments