MATLAB 瀹炵幇zigzag鎵弿(z瀛楀舰鎵弿)
Zigzag鎵弿锛堜篃绉颁负Z瀛楀舰鎵弿锛夋槸涓€绉嶅浘鍍忕紪鐮佹妧鏈紝鐢ㄤ簬灏嗕簩缁寸煩闃典腑鐨勫厓绱犳寜鐓х壒瀹氱殑椤哄簭鎺掑垪銆?/p>
浠ヤ笅鏄疢ATLAB瀹炵幇Zigzag鎵弿鐨勪唬鐮佺ず渚嬶細
function zigzag = zigzagScan(matrix)
[m, n] = size(matrix);
zigzag = zeros(1, m*n);
% 瀹氫箟鍒濆浣嶇疆鍜屾柟鍚?/span>
row = 1; col = 1;
direction = 'up';
% 瀵逛簬姣忎釜鍏冪礌锛屾寜鐓igzag鎵弿鐨勯『搴忚繘琛屾帓鍒?/span>
for i = 1:m*n
zigzag(i) = matrix(row, col);
% 鏍规嵁褰撳墠鏂瑰悜閫夋嫨涓嬩竴涓綅缃?/span>
if strcmp(direction, 'up')
if col == n
row = row + 1;
direction = 'down';
elseif row == 1
col = col + 1;
direction = 'down';
else
row = row - 1;
col = col + 1;
end
elseif strcmp(direction, 'down')
if row == m
col = col + 1;
direction = 'up';
elseif col == 1
row = row + 1;
direction = 'up';
else
row = row + 1;
col = col - 1;
end
end
end
end
浣跨敤绀轰緥锛?/p>
matrix = [1, 2, 3;
4, 5, 6;
7, 8, 9];
zigzag = zigzagScan(matrix);
disp(zigzag);
杈撳嚭缁撴灉锛?/p>
1 2 4 7 5 3 6 8 9
杩欓噷鐨勮緭鍑虹粨鏋滃嵆涓烘寜鐓igzag鎵弿椤哄簭鎺掑垪鐨勭煩闃靛厓绱犮€?/p>
相关问答