生成乙個m * n的二維陣列,元素值為1,2,3…按對角線順序由下向上排列,如:
生成乙個m * n的二維陣列,元素值為1,2,3…按蛇形順序排列,如:1,3,6,9
2,5,8,11
4,7,10,12
陣列同一條斜線上的元素,其下標和相等,從0到m+n-2遞增。1,2,6,7
3,5,8,11
4,9,10,12
遍歷0到m+n-2下標和,每次填入一條對角線上的值。
對角線陣列方向一致,很容易生成;
蛇形陣列交替改變方向,可將每兩次迴圈視為一組。
對角線陣列:
蛇形陣列:import numpy as np
m =3
#行數n =
4#列數
list
= np.zeros(
(m, n)
, dtype=np.
int)
list[0
][1]
=1count =
1#k記錄下標和。每個斜線上下標和相等,從0到m+n-2遞增
for k in
range
(m+n-1)
:for i in
range
(max
(k-m+1,
0),min
(k+1
, n)):
list
[k-i]
[i]= count
count +=
1print
(list
)
import numpy as np
m =3
#行數n =
4#列數
list
= np.zeros(
(m, n)
, dtype=np.
int)
count =
1k =
0#記錄下標和。每個斜線上下標和相等,從0到m+n-2遞增
while kfor i in
range
(max
(k-m+1,
0),min
(k+1
, n)):
list
[k-i]
[i]= count
count +=
1 k +=
1if kfor i in
range
(max
(k-n+1,
0),min
(k+1
, m)):
list
[i][k-i]
= count
count +=
1 k +=
1print
(list
)
python 矩陣按對角線列印
description 將乙個矩陣 二維陣列 按對角線向右進行列印。搜了一下發現好像是美團某次面試要求半小時手撕的題 example input 1,2,3,4 5,1,2,3 9,5,1,2 output 4 3,3 2,2,2 1,1,1 5,5 9 思路 考慮每條對角線開頭元素的index i...
二維陣列主對角線與次對角線輸出 C語言
二維陣列主對角線與次對角線輸出 include include define n intmain putchar 10 printf 主對角線輸出 n 第一種方法 for int i 0 i 4 i 第二種方法 for int i 0 i 4 i printf 2d n arr i j 第三種方法 ...
對角線列印二維陣列問題
最近在網上看到這樣一道面試題 二維陣列 n n 沿對角線方向,從右上角列印到左下角如n 4 4 4二維陣列 列印順序 4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13 網上已經有各種解法,也有現成的程式,但是個人都不是很滿意,網路上的思路都不是很清晰。現在提供一種分析思路...