给定两个 稀疏矩阵 A 和 B,返回AB的结果。
您可以假设A的列数等于B的行数。
样例
样例1
输入:
[[1,0,0],[-1,0,3]]
[[7,0,0],[0,0,0],[0,0,1]]
输出:
[[7,0,0],[-7,0,3]]
解释:
A = [
[ 1, 0, 0],
[-1, 0, 3]
]
B = [
[ 7, 0, 0 ],
[ 0, 0, 0 ],
[ 0, 0, 1 ]
]
| 1 0 0 | | 7 0 0 | | 7 0 0 |
AB = | -1 0 3 | x | 0 0 0 | = | -7 0 3 |
| 0 0 1 |
样例2
输入:
[[1,0],[0,1]]
[[0,1],[1,0]]
输出:
[[0,1],[1,0]]
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution {
public:
/**
* @param A: a sparse matrix
* @param B: a sparse matrix
* @return: the result of A * B
*/
vector<vector<int>> multiply(vector<vector<int>> &A, vector<vector<int>> &B) {
// write your code here
vector<vector<int>> ret(A.size(), vector<int>(B[0].size(), 0));
for(int i = 0; i < A.size(); i++)
{
for(int k = 0; k < B[0].size(); k++)
{
int sum = 0;
for(int j = 0; j < B.size(); j++)
{
if(A[i][j] == 0 || B[j][k] == 0)
continue;
sum += A[i][j] * B[j][k];
}
ret[i][k] = sum;
}
}
return ret;
}
};