先簡單的介紹下題目:
題目是:輸入乙個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 ...