Skip to content

Commit ec066c1

Browse files
authored
Create 1601-maximum-number-of-achievable-transfer-requests.js
1 parent 7cd268f commit ec066c1

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {number} n
3+
* @param {number[][]} requests
4+
* @return {number}
5+
*/
6+
const maximumRequests = function (n, requests) {
7+
let max = 0
8+
helper(requests, 0, Array(n).fill(0), 0)
9+
return max
10+
11+
function helper(requests, index, count, num) {
12+
// Traverse all n buildings to see if they are all 0. (means balanced)
13+
if (index === requests.length) {
14+
for (let i of count) {
15+
if (0 !== i) {
16+
return
17+
}
18+
}
19+
max = Math.max(max, num)
20+
return
21+
}
22+
// Choose this request
23+
count[requests[index][0]]++
24+
count[requests[index][1]]--
25+
helper(requests, index + 1, count, num + 1)
26+
count[requests[index][0]]--
27+
count[requests[index][1]]++
28+
29+
// Not Choose the request
30+
helper(requests, index + 1, count, num)
31+
}
32+
}

0 commit comments

Comments
 (0)