Leetcode 311: Sparse Matrix Multiplication

Posted Keep walking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 311: Sparse Matrix Multiplication相关的知识,希望对你有一定的参考价值。

Given two sparse matrices A and B, return the result of AB.

You may assume that A‘s column number is equal to B‘s row number.

Example:

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 |

 1 public class Solution {
 2     public int[,] Multiply(int[,] A, int[,] B) {
 3         int rowsA = A.GetLength(0), colsA = A.GetLength(1), colsB = B.GetLength(1); 
 4         
 5         var output = new int[rowsA, colsB];
 6         var nonZeroRows = new List<int>();
 7         
 8         for (int i = 0; i < rowsA; i++)
 9         {
10             for (int j = 0; j < colsA; j++)
11             {
12                 if (A[i, j] != 0)
13                 {
14                     nonZeroRows.Add(i);
15                     break;
16                 }
17             }
18         }
19         
20         foreach (var i in nonZeroRows)
21         {
22             for (int j = 0; j < colsB; j++)
23             {
24                 for (int k = 0; k < colsA; k++)
25                 {
26                     output[i, j] += A[i, k] * B[k, j]; 
27                 }
28             }
29         }
30         
31         return output;
32     }
33 }

 



以上是关于Leetcode 311: Sparse Matrix Multiplication的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 311. Sparse Matrix Multiplication 稀疏矩阵相乘

LeetCode 311. Sparse Matrix Multiplication

311. Sparse Matrix Multiplication

facebook 311 Sparse Matrix Multiplication

311. Sparse Matrix Multiplication - Medium

[LeetCode] Sparse Matrix Multiplication 稀疏矩阵相乘