Sparse Matrix Multiplication – Python 3 (Week 10 – 18)

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)

Leave a comment

Design a site like this with WordPress.com
Get started