# 矩阵
# 螺旋矩阵
export default (arr) => {
// 处理每一圈的数据遍历过程
let map = (arr, r=[]) => {
for(let i=0, len=arr.length; i<len; i++){
if(i===0){
r.concat(arr[i])
}else if(i===len-1){
r.concat(arr[i].reverse())
}else{
r.push(arr[i].pop())
}
}
arr.shift();
arr.pop();
for(let i=arr.length-1;i>=0;i--){
r.push(arr[i].shift())
}
if(arr.length){
return map(arr, r)
}else{
return r;
}
}
return map(arr, [])
}
# 旋转图像
export default (arr)=>{
// 获取n的维度
let vecor = arr.length;
// 垂直翻转
for(let i=0,len=vecor/2;i<len;i++){
for(let j=0,tmp; j<vecor; j++){
tmp=arr[i][j]
arr[i][j]=arr[vecor-i-1][j]
arr[vecor-i-1][j]=tmp
}
}
// 对角线翻转
for(let i=0;i<vecor;i++){
for(let j=0,tmp;j<i;j++){
tmp = arr[i][j]
arr[i][j] = arr[j][i]
arr[j][i] = tmp
}
}
return arr;
}