mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Merge pull request #2216 from martinchiu/patch-1
添加 54.螺旋矩阵 Javascript 版本
This commit is contained in:
@ -200,6 +200,58 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Javascript
|
||||||
|
```
|
||||||
|
/**
|
||||||
|
* @param {number[][]} matrix
|
||||||
|
* @return {number[]}
|
||||||
|
*/
|
||||||
|
var spiralOrder = function(matrix) {
|
||||||
|
let m = matrix.length
|
||||||
|
let n = matrix[0].length
|
||||||
|
|
||||||
|
let startX = startY = 0
|
||||||
|
let i = 0
|
||||||
|
let arr = new Array(m*n).fill(0)
|
||||||
|
let offset = 1
|
||||||
|
let loop = mid = Math.floor(Math.min(m,n) / 2)
|
||||||
|
while (loop--) {
|
||||||
|
let row = startX
|
||||||
|
let col = startY
|
||||||
|
// -->
|
||||||
|
for (; col < n + startY - offset; col++) {
|
||||||
|
arr[i++] = matrix[row][col]
|
||||||
|
}
|
||||||
|
// down
|
||||||
|
for (; row < m + startX - offset; row++) {
|
||||||
|
arr[i++] = matrix[row][col]
|
||||||
|
}
|
||||||
|
// <--
|
||||||
|
for (; col > startY; col--) {
|
||||||
|
arr[i++] = matrix[row][col]
|
||||||
|
}
|
||||||
|
for (; row > startX; row--) {
|
||||||
|
arr[i++] = matrix[row][col]
|
||||||
|
}
|
||||||
|
startX++
|
||||||
|
startY++
|
||||||
|
offset += 2
|
||||||
|
}
|
||||||
|
if (Math.min(m, n) % 2 === 1) {
|
||||||
|
if (n > m) {
|
||||||
|
for (let j = mid; j < mid + n - m + 1; j++) {
|
||||||
|
arr[i++] = matrix[mid][j]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (let j = mid; j < mid + m - n + 1; j++) {
|
||||||
|
arr[i++] = matrix[j][mid]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
Reference in New Issue
Block a user