迴旋矩陣詳解

2021-06-15 10:21:04 字數 968 閱讀 2067

先簡單的介紹下題目:

題目是:輸入乙個2 3 4 ...為引數,請列印對應的迴旋陣列,如下:

input: 2

output:

1 24 3

input :3

output:

1 2 3

8 9 4

7 6 5

input :4

output:

1     2    3    4

12  13  14  5

11  16  15  6

10   9    8   7

解題思路:

就假設乙個人沿著這個陣列按照上面的箭頭方向繞圈,他的初始位置為(0,0),並賦值為1,前進一步就相應的加1,若要轉彎,改變方向繼續行走,並賦值。

程式**:

void printcirclenumber(int num)

//將二維陣列清零

for(i = 0; i < num; i++)

for(j = 0; j < num; j++)

//這人總共要行走num*num步

for (k = 0,i = 0, j = 0; k < num * num; k ++)

break;

case 1: //向下

i++;

if(i == num || arr[i][j] != 0)//判斷是否要向左轉彎

break;

case 2: //向左

j--;

if(j < 0 || arr[i][j] != 0)//判斷是否要向上轉彎

break;

case 3: //向上

i--;

if(i < 0 || arr[i][j] != 0)//判斷是否要向右轉彎

break;}}

迴旋矩陣 java演算法

最近要換份工作或者在家休息一段時間,所以練練常用的面試演算法題,說是原創也不完全是。不過確實是看了演算法後,自己重新實現了一遍。package com.liuliu.matrix public class shunxu public static void initialarray value pu...

lua輸出迴旋矩陣

local w,h 7,9 定義矩陣的寬高 local x,y 1,1 起始角標 local d x d y 0,1 下乙個角標的 增量 local cnt 1 起始值 local arr 矩陣 給矩陣賦值 初始值全部為0 for i 1,w do for j 1,h do if arr i nil...

迴旋矩陣演算法題解題思路

原帖見 深圳一家公司面試問題,很囧 題目要求列印乙個迴旋數字矩陣 int i 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 int i 6 1 2 3 4 5 6 20 21 22 23 24 7 19 32 ...