File tree Expand file tree Collapse file tree 3 files changed +86
-0
lines changed
remove-nth-node-from-end-of-list Expand file tree Collapse file tree 3 files changed +86
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @description
3+ * ๊ฐ intervals์ ์์์ ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ ํ tmp์ end์ ๊ฐ start๋ฅผ ๋น๊ตํ์ฌ ํ์ด
4+ *
5+ * n = length of intervals
6+ * time complexity: O(n log n)
7+ * space complexity: O(n)
8+ */
9+ var merge = function ( intervals ) {
10+ intervals . sort ( ( a , b ) => a [ 0 ] - b [ 0 ] ) ;
11+
12+ const answer = [ ] ;
13+ let mergeTmp = intervals [ 0 ] ;
14+
15+ for ( let i = 1 ; i < intervals . length ; i ++ ) {
16+ const [ start , end ] = intervals [ i ] ;
17+
18+ if ( mergeTmp [ 1 ] >= start ) mergeTmp [ 1 ] = Math . max ( mergeTmp [ 1 ] , end ) ;
19+ else {
20+ answer . push ( mergeTmp ) ;
21+ mergeTmp = [ start , end ] ;
22+ }
23+ }
24+
25+ answer . push ( mergeTmp ) ;
26+
27+ return answer ;
28+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @description
3+ * ์ ์ฒด ๋
ธ๋์ ๊ธธ์ด๋ฅผ ๊ตฌํ ๋ค n์ ์ ํฉํ ๋
ธ๋๋ง ๊ฑด๋๋ฐ์ด ๋
ธ๋๋ฅผ ์ฌ๋ฐฐ์ด ์์ผ์ค
4+ *
5+ * n = total length of head node list
6+ * time complexity: O(n)
7+ * space complexity: O(n)
8+ */
9+ var removeNthFromEnd = function ( head , n ) {
10+ let node ;
11+ let nodeCount = 0 ;
12+
13+ node = head ;
14+ while ( node ) {
15+ nodeCount ++ ;
16+ node = node . next ;
17+ }
18+
19+ let answer = new ListNode ( ) ;
20+ let answerNode = answer ;
21+
22+ node = head ;
23+ for ( let i = 0 ; i < nodeCount ; i ++ ) {
24+ if ( nodeCount - n === i ) {
25+ i ++ ;
26+ node = node . next ;
27+ }
28+
29+ answerNode . next = node ;
30+ answerNode = node ;
31+
32+ node = node ?. next ?? null ;
33+ }
34+
35+ return answer . next ;
36+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * @description
3+ * ๋๊ฐ์ ํธ๋ฆฌ๋ฅผ ๋์์ ์ํํ๋ค๋ฅผ ์ด์ ์ผ๋ก ๋ฌธ์ ์ ๊ทผํ์ฌ ํ์ด
4+ *
5+ * n = minimum tree node count of p or q
6+ * time complexity: O(n)
7+ * space complexity: O(1)
8+ */
9+ var isSameTree = function ( p , q ) {
10+ const preOrder = ( tree1 , tree2 ) => {
11+ if ( ! tree1 && ! tree2 ) return true ;
12+ if ( ! tree1 || ! tree2 ) return false ;
13+
14+ if ( tree1 . val !== tree2 . val ) return false ;
15+ if ( ! preOrder ( tree1 . left , tree2 . left ) ) return false ;
16+ if ( ! preOrder ( tree1 . right , tree2 . right ) ) return false ;
17+
18+ return true ;
19+ } ;
20+
21+ return preOrder ( p , q ) ;
22+ } ;
You canโt perform that action at this time.
0 commit comments