请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

螺旋矩阵变种方法

export default (matrix) => { 
    if(matrix.length === 0) return []
    let result = []
    // 处理每一圈的数据遍历过程
    let map = (arr) => {
        if(arr.length === 1) {
            result = result.concat(arr.shift())
            return
        } 
        if(arr.length === 2) {
            result = result.concat(arr.shift())
            result = result.concat(arr.pop().reverse())
            return
        }
        if(arr.length > 2) {
            result = result.concat(arr.shift())
            for (let i = 0, n = arr.length; i < n; i++) {
                result.push(arr[i].pop())
            }
            result = result.concat(arr.pop().reverse())
            for(let i = arr.length - 1; i >= 0; i--) {
                result.push(arr[i].shift())
            }
            map(arr)    
        }
    }
    map(matrix)
    result = result.filter(item => item !== undefined)
    return result
};

正在回答

1回答

快乐动起来呀 2019-06-25 22:55:55

可以现在LeetCode提交下代码看看通过率,如果效果好欢迎贡献到 git.imooc.com 对于优秀的答案会有奖励哟

0 回复 有任何疑惑可以回复我~
  • 提问者 nkliyc #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-06-25 23:05:21
  • 提问者 nkliyc #2
    这个是根据老师讲解思路后,在看老师的代码去前自己写的,跟老师的代码有点出入,大致相同。
    回复 有任何疑惑可以回复我~ 2019-06-25 23:21:46
  • 提问者 nkliyc #3
    这个方法经过了leetcode测试的
    回复 有任何疑惑可以回复我~ 2019-06-25 23:23:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信