遇見乙個題目,如下
var obj =;spiltgroup(obj);
//[[1,4,7],[2,5,8],[3,6]]
這個相當於是實現乙個轉置的功能,但是又還是存在區別的先來看看陣列的轉置
var arr1=[[1,2,3
], [
4,5,6
], [
7,8,9]]
var arr2=[
[1,4,7
], [
2,5,8
], [
3,6,9
]]
這兩個題目的區別,大家應該看到了,陣列的轉置,這個算是很簡單的,應該這個陣列,每一行的位數是一樣的,要麼是個正方形的陣列,要麼是個長方形的陣列
但是看看第乙個題目,每一行的陣列的位數,是不一樣的。
先來看看陣列的轉置,從思路分析,到底遇到這種問題,該如何去著手
第一步:我們需要建立乙個新的陣列,這個陣列的元素還是陣列,我們要知道這個陣列,有多少個元素
var arr1=[[1,2,3
], [
4,5,6
], [
7,8,9]]
vararr2
for(var i=0;i0].length;i++)
console.log(arr2)
//[ ,, ]
因為陣列的每一行都是相同的,所以我們直接可以取到arr[0]的長度,即可
第二步:我們迴圈一次,輸出每一行陣列,然後再迴圈一次,找出陣列每一行的東西。行列交換
for (var i = 0; i < arr.length; i++)}
也是陣列的轉置的寫法,蠻新奇的
var arr =[[2, 4, 6
], [
8, 9, 0
], [
9, 6, 2]];
var newarray = arr[0
].map(function(col, i) )
});console.log(newarray)
這個方法很簡潔,這個具體也說不出來,自己去執行,把每一步列印出來,就知道是什麼回事了
再來整整第乙個題目,由於他不是嚴格意義上的陣列,因此,以上兩種方法是不適合的,我仿照第二種的寫法,最後實現了這功能
"en">
總結:最大的感受就是,陣列的一些方法,一定要是非常的熟悉,而且,當這些方法的巢狀層次比較深的時候,比如說,先用map,再用filter等等啥的,你要有個清晰的認知,不能混淆
java實現陣列的轉置
分析 所謂轉置就是把行變位列,把列變為行。我們就可以用兩個for迴圈遍歷陣列,然後交換array i j 與array j i 注意,遍歷陣列時不可以全部遍歷,這樣會使行和列的資料交換兩次,如下 public void transpose system.out.println 轉置前 for int...
用python實現矩陣轉置
前幾天群裡有同學提出了乙個問題 手頭現在有個列表,列表裡面兩個元素,比如 1,2 之後不斷的新增新的列表,往原來相應位置新增。例如新增 3,4 使原列表擴充為 1,3 2,4 再新增 5,6 擴充為 1,3,5 2,4,6 等等。其實不動腦筋的話,用個二重迴圈很容易寫出來 def trans m a...
python實現轉置矩陣 用Python轉置矩陣?
轉置矩陣意味著我們將其列變為行。讓我們通過乙個例子來理解它,如果轉置後看起來像什麼。假設您有原始矩陣,例如 x 1,2 3,4 5,6 在上面的矩陣 x 中,我們有兩列,分別為1 3 5和2 4 6。因此,當我們在矩陣 x 上方轉置時,列變為行。因此,上面矩陣的轉置版本看起來像 x1 1,3,5 2...