Minimum XOR Sum of Two Arrays LeetCode solution in C++

1
class Solution {
2
public:
3
int dp[14][16384];
4
int dfs(vector<int> &nums1, vector<int> &nums2, int used, int i) {
5
if (i == nums1.size()) return 0;
6

7
if (dp[i][used] > -1) return dp[i][used];
8
int small = INT_MAX;
9
for (int j = 0; j < nums2.size(); j++) {
10
if (!(used & (1 << j))) {
11
small = min(small, (nums1[i] xor nums2[j]) + dfs(nums1, nums2, used | (1 << j), i + 1));
12
}
13
}
14
return dp[i][used] = small;
15
}
16
int minimumXORSum(vector<int> &nums1, vector<int> &nums2) {
17
memset(dp, -1, sizeof(dp));
18
return dfs(nums1, nums2, 0, 0);
19
}
20
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0