lua輸出迴旋矩陣

2021-09-24 23:31:39 字數 974 閱讀 3030

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 ...