赞
踩
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
链接:力扣
- var generateMatrix = function(n) {
- const ans = new Array(n).fill(0).map(() => new Array(n).fill(0));
- let left = 0, right = n - 1, up = 0, down = n - 1;
- let cnt = 1;
- while(cnt <= n * n){
- // 上半部分--要往右移动,所以边界是right,并且预先对向下移动进行控制
- for(let i = left; i <= right; i++) ans[up][i] = cnt++;
- up++;
- // 右半部分--要往下移动,所以边界是down,并且预先对向左移动进行控制
- for(let i = up; i <= down; i++) ans[i][right] = cnt++;
- right--;
- // 下半部分--要往左移动,所以边界是left,并且预先对向上移动进行控制
- for(let i = right; i >= left; i--) ans[down][i] = cnt++;
- down--;
- // 左半部分--要往上移动,所以边界是up,并且预先对向右移动进行控制
- for(let i = down; i >= up; i--) ans[i][left] = cnt++;
- left++;
- // 结束之后开始下一圈
- }
- return ans;
- };
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
链接:力扣
- var spiralOrder = function(matrix) {
- let m = matrix.length;
- let n = matrix[0].length;
- let left = 0, right = n - 1, up = 0, down = m - 1;
- let numList = [];
- while(up <= down && left <= right) {
- for(let i = left; i <= right; i++)
- numList.push(matrix[up][i]);
- up++;
- for(let i = up; i <= down; i++)
- numList.push(matrix[i][right]);
- right--;
- if(up > down || left > right) break;
- for(let i = right; i >= left; i--)
- numList.push(matrix[down][i]);
- down--;
- for(let i = down; i >= up; i--)
- numList.push(matrix[i][left]);
- left++;
- }
- return numList;
- };
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
链接:力扣
- var spiralOrder = function(matrix) {
- var m = matrix.length;
- if(m == 0) return matrix;
- let n = matrix[0].length;
- let left = 0, right = n - 1, up = 0, down = m - 1;
- let numList = [];
- while(up <= down && left <= right) {
- for(let i = left; i <= right; i++)
- numList.push(matrix[up][i]);
- up++;
- for(let i = up; i <= down; i++)
- numList.push(matrix[i][right]);
- right--;
- if(up > down || left > right) break;
- for(let i = right; i >= left; i--)
- numList.push(matrix[down][i]);
- down--;
- for(let i = down; i >= up; i--)
- numList.push(matrix[i][left]);
- left++;
- }
- return numList;
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。