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