作者:
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
}