Sparse Matrix Multiplication
程序员文章站
2022-05-22 19:57:22
...
FB高频题
sparse matrix指的是很多value都是0,
1,save the non zero index in pair
2,计算只对非0 index算
新的datastructure-pair<int,int>
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) {
vector<vector<int>>res(A.size(), vector<int>(B[0].size(), 0));
vector<pair<int,int>>AN, BN;
for(int i = 0; i < A.size(); i++)
{
for(int j = 0; j < A[0].size(); j++)
{
if(A[i][j])
{
AN.push_back({i,j});
}
}
}
for(int i = 0; i < B.size(); i++)
{
for(int j = 0; j < B[0].size(); j++)
{
if(B[i][j])
{
BN.push_back({i,j});
}
}
}
for(auto a : AN)
{
for(auto b : BN)
{
if(a.second == b.first)
{
res[a.first][b.second] += (A[a.first][a.second] * B[b.first][b.second]);
}
}
}
return res;
}
};
推荐阅读
-
Android使用Matrix旋转图片模拟碟片加载过程
-
Matrix AI (MAN)人工智能生态平台赋能智能医疗
-
如何使用Matrix对bitmap的旋转与镜像水平垂直翻转
-
暴风魔镜Matrix多少钱?暴风魔镜Matrix是什么?
-
POJ3233Matrix Power Series(矩阵快速幂)
-
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
-
python的dataframe和matrix的互换方法
-
numpy matrix和array的乘和加实例
-
20亿豪赌Oculus后 Facebook向Matrix进击
-
POJ2505 A multiplication game(博弈)