class Solution:
"""
@param A: a sparse matrix
@param B: a sparse matrix
@return: the result of A * B
"""
def multiply(self, A, B):
# write your code here
n = len(A)
m = len(B[0])
t = len(A[0])
AB = [[0] * m for i in range(n)]
BB = []
for k in range(t):
BB.append([])
for j in range(m):
if B[k][j] != 0:
BB[k].append(j)
for i in range(n):
for k in range(t):
if A[i][k] == 0:
continue
for j in BB[k]:
AB[i][j] += A[i][k] * B[k][j]
return AB
Time O(n^3). Space O(n^2)