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