Maximum Number of Achievable Transfer Requests LeetCode solution in JavaScript

1
/**
2
* @param {number} n
3
* @param {number[][]} requests
4
* @return {number}
5
*/
6
var maximumRequests = function (n, requests) {
7
const transfers = Array(n).fill(0);
8

9
const backtrack = (curr, count, transfers) => {
10
if (curr === requests.length) {
11
if (transfers.every((t) => t === 0)) return count;
12
else return 0;
13
}
14

15
transfers[requests[curr][0]] -= 1;
16
transfers[requests[curr][1]] += 1;
17

18
const countIncluded = backtrack(curr + 1, count + 1, transfers);
19

20
transfers[requests[curr][0]] += 1;
21
transfers[requests[curr][1]] -= 1;
22

23
const countExcluded = backtrack(curr + 1, count, transfers);
24

25
return Math.max(countIncluded, countExcluded);
26
};
27
return backtrack(0, 0, transfers);
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0