Minimize the Difference Between Target and Chosen Elements LeetCode solution in C++

1
class Solution {
2
public:
3
int dp[8000][71];
4
int n, m;
5
int find(vector<vector<int>> &mat, int r, int sum, int &target) {
6
if (r >= n) {
7
return abs(sum - target);
8
}
9
if (dp[sum][r] != -1) {
10
return dp[sum][r];
11
}
12
int ans = INT_MAX;
13
for (int i = 0; i < m; i++) {
14
ans = min(ans, find(mat, r + 1, sum + mat[r][i], target));
15
if (ans == 0) {
16
break;
17
}
18
}
19
return dp[sum][r] = ans;
20
}
21
int minimizeTheDifference(vector<vector<int>> &mat, int target) {
22
memset(dp, -1, sizeof(dp));
23
n = mat.size();
24
m = mat[0].size();
25
return find(mat, 0, 0, target);
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0