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