File tree Expand file tree Collapse file tree 5 files changed +148
-0
lines changed
longest-substring-without-repeating-characters Expand file tree Collapse file tree 5 files changed +148
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {string } s
3+ * @return {number }
4+ */
5+ var lengthOfLongestSubstring = function ( s ) {
6+ let start = 0 ;
7+ let maxLength = 0 ;
8+ const seen = new Map ( ) ; // 문자 -> 마지막 인덱스
9+
10+ for ( let end = 0 ; end < s . length ; end ++ ) {
11+ const char = s [ end ] ;
12+
13+ // 중복 문자가 이전에 등장했으면 start를 갱신
14+ if ( seen . has ( char ) && seen . get ( char ) >= start ) {
15+ start = seen . get ( char ) + 1 ;
16+ }
17+
18+ seen . set ( char , end ) ; // 현재 문자 위치 갱신
19+ maxLength = Math . max ( maxLength , end - start + 1 ) ;
20+ }
21+
22+ return maxLength ;
23+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {string } s
3+ * @return {number }
4+ */
5+ var lengthOfLongestSubstring = function ( s ) {
6+ let start = 0 ;
7+ let maxLength = 0 ;
8+ const seen = new Map ( ) ; // 문자 -> 마지막 인덱스
9+
10+ for ( let end = 0 ; end < s . length ; end ++ ) {
11+ const char = s [ end ] ;
12+
13+ // 중복 문자가 이전에 등장했으면 start를 갱신
14+ if ( seen . has ( char ) && seen . get ( char ) >= start ) {
15+ start = seen . get ( char ) + 1 ;
16+ }
17+
18+ seen . set ( char , end ) ; // 현재 문자 위치 갱신
19+ maxLength = Math . max ( maxLength , end - start + 1 ) ;
20+ }
21+
22+ return maxLength ;
23+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * function ListNode(val, next) {
4+ * this.val = (val===undefined ? 0 : val)
5+ * this.next = (next===undefined ? null : next)
6+ * }
7+ */
8+ /**
9+ * @param {ListNode } head
10+ * @return {ListNode }
11+ */
12+ function reverseList ( head ) {
13+ let prev = null ;
14+ let curr = head ;
15+
16+ while ( curr !== null ) {
17+ let nextTemp = curr . next ;
18+ curr . next = prev ;
19+ prev = curr ;
20+ curr = nextTemp ;
21+ }
22+
23+ return prev ; // prev는 새로운 head
24+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[][] } matrix
3+ * @return {void } Do not return anything, modify matrix in-place instead.
4+ */
5+ var setZeroes = function ( matrix ) {
6+ const m = matrix . length ;
7+ const n = matrix [ 0 ] . length ;
8+
9+ let firstRowHasZero = false ;
10+ let firstColHasZero = false ;
11+
12+ // 첫 행/열에 0이 있는지 확인
13+ for ( let i = 0 ; i < m ; i ++ ) {
14+ if ( matrix [ i ] [ 0 ] === 0 ) firstColHasZero = true ;
15+ }
16+ for ( let j = 0 ; j < n ; j ++ ) {
17+ if ( matrix [ 0 ] [ j ] === 0 ) firstRowHasZero = true ;
18+ }
19+
20+ // 마커로 0 표시
21+ for ( let i = 1 ; i < m ; i ++ ) {
22+ for ( let j = 1 ; j < n ; j ++ ) {
23+ if ( matrix [ i ] [ j ] === 0 ) {
24+ matrix [ i ] [ 0 ] = 0 ; // 해당 행 마킹
25+ matrix [ 0 ] [ j ] = 0 ; // 해당 열 마킹
26+ }
27+ }
28+ }
29+
30+ // 마커 기반으로 행/열 0 처리
31+ for ( let i = 1 ; i < m ; i ++ ) {
32+ if ( matrix [ i ] [ 0 ] === 0 ) {
33+ for ( let j = 1 ; j < n ; j ++ ) {
34+ matrix [ i ] [ j ] = 0 ;
35+ }
36+ }
37+ }
38+ for ( let j = 1 ; j < n ; j ++ ) {
39+ if ( matrix [ 0 ] [ j ] === 0 ) {
40+ for ( let i = 1 ; i < m ; i ++ ) {
41+ matrix [ i ] [ j ] = 0 ;
42+ }
43+ }
44+ }
45+
46+ // Step 4: 첫 행과 첫 열 처리
47+ if ( firstRowHasZero ) {
48+ for ( let j = 0 ; j < n ; j ++ ) {
49+ matrix [ 0 ] [ j ] = 0 ;
50+ }
51+ }
52+ if ( firstColHasZero ) {
53+ for ( let i = 0 ; i < m ; i ++ ) {
54+ matrix [ i ] [ 0 ] = 0 ;
55+ }
56+ }
57+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number } m
3+ * @param {number } n
4+ * @return {number }
5+ */
6+ var uniquePaths = function ( m , n ) {
7+ const memo = { } ;
8+
9+ function dfs ( x , y ) {
10+ if ( x >= m || y >= n ) return 0 ;
11+ if ( x === m - 1 && y === n - 1 ) return 1 ;
12+
13+ const key = `${ x } ,${ y } ` ;
14+ if ( key in memo ) return memo [ key ] ;
15+
16+ memo [ key ] = dfs ( x + 1 , y ) + dfs ( x , y + 1 ) ;
17+ return memo [ key ] ;
18+ }
19+
20+ return dfs ( 0 , 0 ) ;
21+ } ;
You can’t perform that action at this time.
0 commit comments