二进制暴力枚举就行了:
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; } };
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树leetcode-动态规划22-括号生成8242 人正在系统学习中
