出現問題,矩陣轉置失效,代碼如下:
for(int i=0;i<len-1;i++){
for(int j=0;j<len;j++){
if(i!=j){
temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
}
}
分析原因:
想當然的認爲矩陣轉置只需互換行列位置,但是應該只對上或下三角矩陣進行列互換
for(int i=0;i<len-1;i++){
for(int j=i+1;j<len;j++){
temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
}
技巧點:對於矩陣旋轉的題應該考慮通過翻轉、轉置、對稱等方式。可以繞過複雜的尋找對應位置的計算。