给定两个 n*n 的矩阵 A 和 B ,求 A*B 。
数据范围:,
要求:空间复杂度 , 时间复杂度
进阶:本题也有空间复杂度 ,时间复杂度 的解法
PS:更优时间复杂度的算法这里并不考察
class Solution: def solve(self , a , b ): # write code here m, k, n = len(a), len(a[0]), len(b[0]) res = [[0 for _ in range(n)] for _ in range(m)] # res[i][j] = sum() for i in range(m): for j in range(n): res[i][j] = sum(x * y for x, y in zip(a[i], [r[j] for r in b])) return res
class Solution: def solve(self , a , b ): # write code here length = len(a) matrix = [[0 for j in range(length)] for i in range(length)] for i in range(length): for j in range(length): for m in range(length): matrix[i][j] += a[i][m] * b[m][j] return matrix
class Solution: def solve(self , a , b ): c = [] for i in range(len(a)): for j in range(len(a)): c.append(int(sum([a[i][n] * b[n][j] for n in range(len(a))]))) return ([c[k*len(a):(k*len(a)+len(a))] for k in range(len(a))])