File tree Expand file tree Collapse file tree 3 files changed +9
-20
lines changed
maximum-profit-in-job-scheduling Expand file tree Collapse file tree 3 files changed +9
-20
lines changed Original file line number Diff line number Diff line change 1
1
import { upperBound } from "./upperBound.ts" ;
2
-
3
2
function jobScheduling (
4
3
startTime : number [ ] ,
5
4
endTime : number [ ] ,
@@ -12,13 +11,7 @@ function jobScheduling(
12
11
const n = startTime . length ;
13
12
const dp = Array < number > ( n + 1 ) . fill ( 0 ) ;
14
13
for ( let i = 1 ; i <= n ; i ++ ) {
15
- const k = upperBound (
16
- jobs ,
17
- jobs [ i - 1 ] [ 0 ] ,
18
- ( v , x ) => v [ 1 ] > x ,
19
- 0 ,
20
- i - 1 ,
21
- ) ;
14
+ const k = upperBound ( 0 , i - 1 , ( m ) => jobs [ m ] [ 1 ] > jobs [ i - 1 ] [ 0 ] ) ;
22
15
dp [ i ] = Math . max ( dp [ i - 1 ] , dp [ k ] + jobs [ i - 1 ] [ 2 ] ) ;
23
16
}
24
17
Original file line number Diff line number Diff line change 1
1
export function lowerBound (
2
- a : number [ ] [ ] ,
3
- x : number ,
4
- less : ( v : number [ ] , x : number ) => boolean ,
5
- left = 0 ,
6
- right = a . length ,
2
+ left : number ,
3
+ right : number ,
4
+ less : ( m : number ) => boolean ,
7
5
) {
8
6
while ( left < right ) {
9
7
const mid = Math . floor ( left + ( right - left ) / 2 ) ;
10
- if ( less ( a [ mid ] , x ) ) left = mid + 1 ;
8
+ if ( less ( mid ) ) left = mid + 1 ;
11
9
else right = mid ;
12
10
}
13
11
return left ;
Original file line number Diff line number Diff line change 1
1
export function upperBound (
2
- a : number [ ] [ ] ,
3
- x : number ,
4
- greater : ( v : number [ ] , x : number ) => boolean ,
5
- left = 0 ,
6
- right = a . length ,
2
+ left : number ,
3
+ right : number ,
4
+ greater : ( m : number ) => boolean ,
7
5
) : number {
8
6
while ( left < right ) {
9
7
const mid = Math . floor ( left + ( right - left ) / 2 ) ;
10
- if ( greater ( a [ mid ] , x ) ) right = mid ;
8
+ if ( greater ( mid ) ) right = mid ;
11
9
else left = mid + 1 ;
12
10
}
13
11
return left ;
You can’t perform that action at this time.
0 commit comments