给定两个 稀疏矩阵 大小为 m x k 的稀疏矩阵 mat1 和大小为 k x n 的稀疏矩阵 mat2 返回 mat1 x mat2 的结果。你可以假设乘法总是可能的。示例 1输入mat1 [[1,0,0],[-1,0,3]], mat2 [[7,0,0],[0,0,0],[0,0,1]]输出[[7,0,0],[-7,0,3]]示例 2:输入mat1 [[0]], mat2 [[0]]输出[[0]]提示:m mat1.lengthk mat1[i].length mat2.lengthn mat2[i].length1 m, n, k 100-100 mat1[i][j], mat2[i][j] 100解class Solution { public: vectorvectorint multiply(vectorvectorint mat1, vectorvectorint mat2) { int n mat1.size(); int k mat1[0].size(); int m mat2[0].size(); vectorvectorint ans(n, vectorint(m, 0)); for (int i 0; i n; i) { for (int j 0; j k; j) { if(mat1[i][j] ! 0) { for (int l 0; l m; l) { ans[i][l] mat1[i][j] * mat2[j][l]; } } } } return ans; } };列表的列表class Solution { public: vectorvectorpairint, int compressMatrix(vectorvectorint matrix) { int rows matrix.size(); int cols matrix[0].size(); vectorvectorpairint, int res(rows); for (int i 0; i rows; i) { for (int j 0; j cols; j) { if (matrix[i][j] ! 0) { res[i].push_back({matrix[i][j], j}); } } } return res; } vectorvectorint multiply(vectorvectorint mat1, vectorvectorint mat2) { int n mat1.size(); int k mat1[0].size(); int m mat2[0].size(); vectorvectorpairint, int A compressMatrix(mat1); vectorvectorpairint, int B compressMatrix(mat2); vectorvectorint ans(n, vectorint(m, 0)); for (int i 0; i n; i) { for (auto [ele1, mat1Col] : A[i]) { for (auto [ele2, mat2Col] : B[mat1Col]) { ans[i][mat2Col] ele1 * ele2; } } } return ans; } };