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 then
arr[i] = {}
endarr[i][j] = 0
endend--開始迴旋賦值
while(cnt <= w*h) do
arr[x][y] = cnt
cnt = cnt + 1
x = x + d_x
y = y + d_y
if d_y == 1 and (y>=h or arr[x][y+1] ~= 0) then--向下
d_x = 1
d_y = 0
elseif d_x == 1 and (x>=w or arr[x+1][y] ~= 0) then--向左
d_x= 0;
d_y = -1;
elseif d_y == -1 and (y<=0 or arr[x][y-1] ~= 0) then--向上
d_x = -1;
d_y = 0;
elseif d_x == -1 and (x<=0 or arr[x-1][y] ~= 0) then--向右
d_x= 0;
d_y = 1;
endend--輸出迴旋矩陣
for i=1,w do
local str = ""
for j=1,h do
str = str .."、"..arr[i][j]
endprint(str)
end
迴旋矩陣詳解
先簡單的介紹下題目 題目是 輸入乙個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...
迴旋矩陣 java演算法
最近要換份工作或者在家休息一段時間,所以練練常用的面試演算法題,說是原創也不完全是。不過確實是看了演算法後,自己重新實現了一遍。package com.liuliu.matrix public class shunxu public static void initialarray value pu...
迴旋矩陣演算法題解題思路
原帖見 深圳一家公司面試問題,很囧 題目要求列印乙個迴旋數字矩陣 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 ...