js 二維陣列順時針旋轉展開為一維陣列

2022-05-14 11:35:11 字數 1029 閱讀 2800

最近工作中遇到的情況,用 js 將二維陣列旋轉展開為一維陣列,記錄一下:

函式如下:function

roll_out(array)

direction = 'top_bottom';

i_init++;

break

; }

case 'top_bottom':

direction = 'right_left';

j_end--;

break

; }

case 'right_left':

direction = 'bottom_top';

i_end--;

break

; }

case 'bottom_top':

direction = 'left_right';

j_init++;

break

; }}}

console.log(outputarr)

}主要就是方向轉變的處理,改變 direction 的初始值可以選擇從哪乙個角開始旋轉展開。

測試用例:

//

用例1const array =[

[1,2,3,4],

[12,13,14,5],

[11,16,15,6],

[10,9,8,7]]//

輸出 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

//用例2

const array_len2 =[

[1,2,3,4,5,6,7,8],

[18,19,20,21,22,23,24,9],

[17,16,15,14,13,12,11,10]]//

輸出 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]

順時針列印二維陣列

如果看不懂,可參照劍指offer128頁 include include using namespace std 方法一 傳vector 需要傳引用 方法二 傳二維指標 按圈給陣列賦值 void printmatrixincircle int vector numbers,int rows,int ...

順時針列印二維陣列

一 題目 要求 輸入乙個陣列,從外到裡順時針列印陣列中的元素,例如輸入矩陣 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11,10,9,5,6,7 二 思路 按圈列印,記錄每圈的起始位置 行號 列號 特殊行或列需要判斷防止出現空指標異常。三 public c...

二維陣列順時針螺旋遞增

之前去美團面試,被問到如題目的演算法問題,因為之前沒有解決過類似的問題,所以當時沒有答出來,今天在網上搜了一下,都是通過多次迴圈來實現的,覺得演算法效率低,自己琢磨用遞迴實現乙個,實現的思路是用遞迴,不斷變化二維陣列的行 列下標來實現螺旋,遞增就很簡單,有乙個值一直 然後給二維陣列相應位置複製就可以...