楼主:
JIWP (JIWP)
2024-07-20 23:16:581605. Find Valid Matrix Given Row and Column Sums
给两个array : rowsum、colsum
rowsum[i]表示第i列数字的总和
colsum[j]表示第j行数字的总和
请根据回传一个符合这些资讯的2D矩阵
这个2D矩阵不会有负数
思路:
rowsum[i]、colsum[j]两个中比较小的那一个就是matrix[i][j]可以放的最大值
采用贪婪法
每次都在matrix[i][j]放入可允许的最大值
之后将rowsum[i]-matrix[i][j]、colsum[j]-matrix[i][j]
最后去遍历整个matrix就可以得到答案了
golang code :
func restoreMatrix(rowSum []int, colSum []int) [][]int {
n,m:=len(rowSum),len(colSum)
matrix:=make([][]int,n)
for i:=0;i<n;i++{
matrix[i]=make([]int,m)
for j:=0;j<m;j++{
matrix[i][j]=min(rowSum[i],colSum[j])
rowSum[i]-=matrix[i][j]
colSum[j]-=matrix[i][j]
if rowSum[i]==0{
break
}
}
}
return matrix
}