1. 程式人生 > >867 轉置矩陣

867 轉置矩陣

程式碼:

/**
 * @param {number[][]} A
 * @return {number[][]}
 */
var transpose = function(A) {
    var result = [];
    for(var k=0; k<A[0].length; k++ ){
        result[k] = [];
    }
    for(var i=0;i<A.length;i++){
        for(var j=0;j<A[i].length;j++){
            result[j][i] = A[i][j];
        }      
    }
    return result;
};

解析:

不像C或者JAVA,JS不支援多維陣列,JS定義多維陣列是通過定義一維陣列後再在每一個元素裡面定義陣列實現的。多維陣列也是同樣道理。

這道題主要就是要理解矩陣的轉置,A[i][j] =B[j][i],  遍歷之後做這樣的一個操作。

拓展一下,一維陣列的元素可以通過數字或者字串去索引。
二維陣列只能通過數字去索引    a['a'] = 1, 這樣的是不被允許的
在使用ajax傳遞資料的時候,陣列只能使用數字去索引,如果要通過字串,則使用物件巢狀
如:var data ={
'a':{'id':1,'url':h}
};       // 通過data['a']['id']訪問資料    也可以通過  data.a.id也可以訪問