楼主:
oin1104 (是oin的说)
2024-07-20 13:47:09题目:
给你两个阵列
代表一个matrix里面的row col的和
代表那条的row sum
或是 col sum
问你原本的matrix长怎样
思路:
首先
因为它们都是把所有元素加起来
所以两条阵列的元素加起来应该要一样多
然后
这题真的好诡异喔
我自己都不清楚为什么这样是正确的
为什么会想到这个解法阿
总之
你要遍历整个矩阵
然后遇到一个地方
就把最大的能放进去的数字放进去
同时要把那条的rowsum colsum减去相应的值
这样就可以慢慢的把两边的数字都减少了
我吐了
这题真的好诡异
我要去看解答
```cpp
class Solution {
public:
vector<vector<int>> restoreMatrix(vector<int>& rowSum, vector<int>& colSum)
{
int n = rowSum.size();
int m = colSum.size();
vector<vector<int>> paper(n , vector<int>(m,0));
int k;
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < m ; j ++)
{
k = min(rowSum[i],colSum[j]);
rowSum[i] -= k;
colSum[j] -= k;
paper[i][j] = k;
}
}
return paper;
}
};```