Skip to content

Commit 2e58ec6

Browse files
committed
Runtime: 2720 ms (Top 33.33%) | Memory: 213.20 MB (Top 33.33%)
1 parent 5620072 commit 2e58ec6

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Runtime: 2720 ms (Top 33.33%) | Memory: 213.20 MB (Top 33.33%)
2+
3+
var minimumTotalDistance = function(robot, factory) {
4+
robot.sort((a, b) => a - b);
5+
factory.sort((a, b) => a[0] - b[0]);
6+
let memo = {};
7+
8+
const dp = function(i, j, k) {
9+
if (memo[`${i} ${j} ${k}`]) return memo[`${i} ${j} ${k}`];
10+
if (i === robot.length) return 0;
11+
if (j === factory.length) return Infinity;
12+
let distance1 = dp(i, j + 1, 0);
13+
let distance2 = factory[j][1] > k ? dp(i + 1, j, k + 1) + Math.abs(robot[i] - factory[j][0]) : Infinity;
14+
const result = Math.min(distance1, distance2);
15+
memo[`${i} ${j} ${k}`] = result;
16+
return result;
17+
}
18+
19+
return dp(0, 0, 0);
20+
};

0 commit comments

Comments
 (0)