File tree 3 files changed +86
-0
lines changed
remove-nth-node-from-end-of-list
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