Python 生成蛇形陣列 對角線陣列

2021-10-01 18:23:28 字數 1465 閱讀 5288

生成乙個m * n的二維陣列,元素值為1,2,3…按對角線順序由下向上排列,如:

1,3,6,9

2,5,8,11

4,7,10,12

生成乙個m * n的二維陣列,元素值為1,2,3…按蛇形順序排列,如:

1,2,6,7

3,5,8,11

4,9,10,12

陣列同一條斜線上的元素,其下標和相等,從0到m+n-2遞增。

遍歷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 網上已經有各種解法,也有現成的程式,但是個人都不是很滿意,網路上的思路都不是很清晰。現在提供一種分析思路...