Skip to content

Commit 8d5dc32

Browse files
authored
Create 1066-campus-bikes-ii.js
1 parent 0d91292 commit 8d5dc32

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

1066-campus-bikes-ii.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* @param {number[][]} workers
3+
* @param {number[][]} bikes
4+
* @return {number}
5+
*/
6+
const assignBikes = function (workers, bikes) {
7+
const n = workers.length
8+
const m = bikes.length
9+
const dp = Array.from({ length: n + 1 }, () =>
10+
Array(1 << m).fill(Number.MAX_VALUE / 2)
11+
)
12+
13+
dp[0][0] = 0
14+
let min = Number.MAX_VALUE
15+
for (let i = 1; i <= n; i++) {
16+
for (let s = 1; s < 1 << m; s++) {
17+
for (let j = 0; j < m; j++) {
18+
if ((s & (1 << j)) === 0) continue
19+
let prev = s ^ (1 << j)
20+
dp[i][s] = Math.min(
21+
dp[i - 1][prev] + dis(workers[i - 1], bikes[j]),
22+
dp[i][s]
23+
)
24+
if (i === n) min = Math.min(min, dp[i][s])
25+
}
26+
}
27+
}
28+
return min
29+
}
30+
31+
function dis(p1, p2) {
32+
return Math.abs(p1[0] - p2[0]) + Math.abs(p1[1] - p2[1])
33+
}

0 commit comments

Comments
 (0)