Skip to content

Commit c593f24

Browse files
authored
Create 2809-minimum-time-to-make-array-sum-at-most-x.js
1 parent ea6950e commit c593f24

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* @param {number[]} nums1
3+
* @param {number[]} nums2
4+
* @param {number} x
5+
* @return {number}
6+
*/
7+
const minimumTime = function (nums1, nums2, x) {
8+
let n = nums1.length,
9+
s1 = 0,
10+
s2 = 0
11+
12+
let ids = Array(n)
13+
for (let i = 0; i < n; i++) {
14+
ids[i] = i
15+
s1 += nums1[i]
16+
s2 += nums2[i]
17+
}
18+
19+
ids.sort((i, j) => nums2[i] - nums2[j])
20+
21+
let f = new Array(n + 1).fill(0)
22+
for (let i of ids) {
23+
for (let j = n; j > 0; j--) {
24+
f[j] = Math.max(f[j], f[j - 1] + nums1[i] + nums2[i] * j)
25+
}
26+
}
27+
28+
for (let t = 0; t <= n; t++) {
29+
if (s1 + s2 * t - f[t] <= x) {
30+
return t
31+
}
32+
}
33+
return -1
34+
}

0 commit comments

Comments
 (0)