作業幫面試題 矩陣相乘

2021-09-26 08:02:12 字數 664 閱讀 6813

作業幫面試中手寫**——兩個矩陣相乘

def matrixmul(a, b):

if len(a[0]) == len(b):

res_row = len(a)

res_col = len(b[0])

res = [[0] * res_col for _ in range(res_row)]

for i in range(len(a)):

for j in range(len(b[0])):

for k in range(len(b)):

res[i][j] += a[i][k] * b[k][j]

return res

return ('輸入矩陣有誤!')

之後問我能不能進行優化,我沒有想出來,面試官提示從定址方面考慮一下。我回答可以將三層迴圈的順序更改,從而減少定址次數。

另外,我們可以在迴圈之前判斷兩個乘數中有沒有0

for i in range(len(a)):

for k in range(len(b)):

if res[i][k] != 0:

for j in range(len(b[0])):

res[i][j] += a[i][k] * b[k][j]

面試題 蛇形矩陣

輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字1到n m按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格式 輸入共一行,包含兩個整數n和m。輸出格式 輸出滿足要求的矩陣。矩陣佔n行,每行包含m個空格隔開的整數。資料範圍 1 n,m 1001 n,m 100 輸入樣例 3 3輸出樣例 1 ...

作業幫面試題 字串的組合問題

輸入乙個字串,輸出該字串的所有組合。如 若字串為 abc,則應輸出 ab ac bc abc.當時的第一反應是遞迴,但是對終止條件一直沒想明白,面試官提示乙個字母有兩個狀態,0和1,0代表有,1代表沒有,所以我設定了乙個01陣列儲存標誌位,然後按陣列輸出。思路1 暴力法。通過舉例子,找規律可以發現當...

49 搜狗面試題 大數相乘演算法

分析 大數能大到整形型別儲存不了。須要借助於其它的演算法,來完畢乘法運算。能夠使用口算乘法的步驟來模擬乘法操作。例如以下 123 122 3 4 6 3 4 6 1 2 3 1 5 0 0 6 實現例如以下 include includeusing namespace std char mutibi...