1. 程式人生 > >Leetcode 311: Sparse Matrix Multiplication

Leetcode 311: Sparse Matrix Multiplication

http example etc output lee style ice sum parse

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