1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| const MaxHeap = require('./template/maxheap')
function solve(init, target, A, B) {
A[A.length] = target B[B.length] = 0
const heap = new MaxHeap()
let res = 0
let position = 0
let currentP = init
for (let i = 0, len = A.length; i < len; i++) {
let delta = A[i] - position
while (currentP - delta < 0) { if (heap.empty()) { return -1 }
currentP += heap.top() heap.delete() res++ }
currentP -= delta position = A[i] heap.insert(B[i]) }
return res }
console.log(solve(10, 25, [10, 14, 20, 21], [10, 5, 2, 4]))
|