二进制暴力枚举就行了:
class Solution {
public:
int maximumRequests(int n, vector<vector<int>>& requests) {
int cnt[21];
int len = requests.size();
int lim = (1 << len);
int ans = 0;
for(int i = 0;i < lim;i ++) {
int t = i;
int pos = 0;
int tans = 0;
while(t) {
++ pos;
int x = requests[pos - 1][0], y = requests[pos - 1][1];
if(t & 1) cnt[x] --,cnt[y] ++, tans ++;
t >>= 1;
}
int flag = 0;
for(int i = 0;i < n;i ++) {
if(cnt[i]) {
flag = 1;
cnt[i] = 0;
}
}
if(flag == 0) ans = max(ans, tans);
}
return ans;
}
};