class Solution {
public:
vector<vector<int>> restoreMatrix(vector<int>& rowSum, vector<int>& colSum)
{
int m = rowSum.size(), n = colSum.size();
vector<int> curRowSum(m);
vector<int> curColSum(n);
vector<vector<int>> matrix(m, vector<int>(n));
for (int i = 0; i < m; ++i)
{
for (int j = 0; j < n; ++j)
{
matrix[i][j] = min(rowSum[i] - curRowSum[i], colSum[j] - curColSum[j]);
curRowSum[i] += matrix[i][j];
curColSum[j] += matrix[i][j];
}
}
return matrix;
}
};
- T: O(M∗N)
- S: O(M+N)