311. Sparse Matrix Multiplication

这个题做得很乱,主要是忘了矩阵相乘的规则,学完linear algebra再也没遇到过这种知识,整个linear algebra到现在为止就能记住个bra。。

复习了一下,除了navie approach还是不会做。

看TAG是MAP。。依然不会。。

看答案。原来是为了省却0无意义操作。。。

那就是矩阵A的某个点是0的时候,就做乘法了,因为反正是0,对最后结果也无非是+0,没意义。。

public class Solution {
    public int[][] multiply(int[][] A, int[][] B) 
    {
        if(A[0].length != B.length) return null;
        
        int[][] res = new int[A.length][B[0].length];
        
        for(int i = 0; i < A.length;i++)
        {
            
            for(int j = 0; j < B.length;j++)
            {
                if(A[i][j] != 0)
                {
                    for(int k = 0; k < B[0].length; k++)
                    {
                        res[i][k] += A[i][j] * B[j][k];
                    }
                }
            }
            
        }
        
        return res;
        
    }
}

不是太明白MAP是干什么用的。。。

先这样吧,这个题做的好烦。

posted @ 2016-10-15 04:37  哇呀呀..生气啦~  阅读(146)  评论(0编辑  收藏  举报