面試題 蛇形矩陣

2021-10-03 22:42:11 字數 1177 閱讀 1358

輸入兩個整數nm,輸出乙個nm列的矩陣,將數字1n * m按照回字蛇形填充至矩陣中。

具體矩陣形式可參考樣例。

輸入格式

輸入共一行,包含兩個整數nm

輸出格式

輸出滿足要求的矩陣。

矩陣佔n行,每行包含m個空格隔開的整數。

資料範圍

1≤n,m≤1001≤n,m≤100

輸入樣例:

3 3
輸出樣例:
1 2 3

8 9 4

7 6 5

​ 這道題是要將大小為1 ~ n * m的數字按照順時針繞圈(有點白話)的方式放入到乙個n * m的陣列中,所以做法十分明顯,我們需要定義_右下左上四個方向的偏移量_,通過在現有座標上加上方向偏移量來實現我們當前指標(也就是二維陣列下標)的移動

​ 現在怎麼移動的問題解決了,另乙個問題就是判斷我們_下一次要移動的位置是否已經超出矩陣邊界_,或者_下一次要移動的位置是否已經被賦過值_了,通過這兩個條件,我們可以判斷我們的座標移動是不是需要_拐彎_了,如果是,只需要讓偏移量改變即可,另外由於矩陣中數字的範圍是1 ~ n * m,所以凡是下乙個位置檢測到!= 0的數字,那就說明這個位置已經被走過了

​ 下面我們一起來看**

#include

using namespace std;

int res[

110]

[110];

intmain()

;int dy[4]

=;scanf

("%d%d"

,&n,

&m);

int x =1;

while

(x <= n * m)

else

if(item ==4)

item =0;

}for

(i =

0; i < n; i++

)}

微軟面試題模擬 蛇形矩陣Leetcode 54

1.先不要一上來就寫 先把問題的描述和邊界,以及思路和面試官說清楚。2.然後開始寫 3.寫 的時候,如leetcode那樣,實現乙個函式介面 這道題目使用o n 空間的簡潔做法,利用了矩陣的規律,vector在使用的時候注意提前申請好空間,避免用push back.比較簡單的一題。class sol...

騰訊筆試題 蛇形矩陣

題目 蛇形矩陣,是由1開始的自然數一次排列成的n n的正方形矩陣,數字依次由外而內的遞增,如下面例項 n 3時 1 2 3 8 9 4 7 6 5 n 6時 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 17 30 29...

面試題 01 08 零矩陣

編寫一種演算法,若m n矩陣中某個元素為0,則將其所在的行與列清零。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,0 0,3,1,0 2.1 類暴力破解 ...