@@ -10,6 +10,7 @@ export default class MyCalendarThree {
10
10
#search( start : number , end : number , node : SegmentTree ) : SegmentTree [ ] {
11
11
start = Math . max ( start , node . start ) ;
12
12
end = Math . min ( end , node . end ) ;
13
+ // console.log(start, end, node);
13
14
if ( start > end || start > node . end || end < node . start ) {
14
15
return [ ] ;
15
16
}
@@ -28,7 +29,7 @@ export default class MyCalendarThree {
28
29
. map ( ( v , i , a ) => [ v , a [ i + 1 ] - 1 ] )
29
30
. slice ( 0 , - 1 )
30
31
. filter ( ( [ a , b ] ) => node . start <= a && node . end >= b ) ;
31
-
32
+ /* children 按照从小到大排列 */
32
33
node . children . push (
33
34
...segments . map ( ( [ a , b ] ) => SegmentTree ( a , b , node . value ) ) ,
34
35
) ;
@@ -42,7 +43,13 @@ export default class MyCalendarThree {
42
43
end : number ,
43
44
nodes : SegmentTree [ ] ,
44
45
) : SegmentTree [ ] {
45
- return nodes . map ( ( child ) => this . #search( start , end , child ) ) . flat ( ) ;
46
+ // console.log([start, end, nodes]);
47
+ // return nodes.map((child) => this.#search(start, end, child)).flat();
48
+ const trees : SegmentTree [ ] = [ ] ;
49
+ for ( const child of nodes ) {
50
+ trees . push ( ...this . #search( start , end , child ) ) ;
51
+ }
52
+ return trees ;
46
53
}
47
54
48
55
#increase( nodes : SegmentTree [ ] ) {
0 commit comments