Skip to content

Commit 8fb778c

Browse files
committed
upperBound
1 parent 0fb14fa commit 8fb778c

File tree

3 files changed

+9
-20
lines changed

3 files changed

+9
-20
lines changed

maximum-profit-in-job-scheduling/index.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { upperBound } from "./upperBound.ts";
2-
32
function jobScheduling(
43
startTime: number[],
54
endTime: number[],
@@ -12,13 +11,7 @@ function jobScheduling(
1211
const n = startTime.length;
1312
const dp = Array<number>(n + 1).fill(0);
1413
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]);
2215
dp[i] = Math.max(dp[i - 1], dp[k] + jobs[i - 1][2]);
2316
}
2417

maximum-profit-in-job-scheduling/lowerBound.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
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,
75
) {
86
while (left < right) {
97
const mid = Math.floor(left + (right - left) / 2);
10-
if (less(a[mid], x)) left = mid + 1;
8+
if (less(mid)) left = mid + 1;
119
else right = mid;
1210
}
1311
return left;

maximum-profit-in-job-scheduling/upperBound.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
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,
75
): number {
86
while (left < right) {
97
const mid = Math.floor(left + (right - left) / 2);
10-
if (greater(a[mid], x)) right = mid;
8+
if (greater(mid)) right = mid;
119
else left = mid + 1;
1210
}
1311
return left;

0 commit comments

Comments
 (0)