zoukankan      html  css  js  c++  java
  • 54. 螺旋矩阵

    题目:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

    示例 1:

    题解:

    class Solution {
    private:
        static constexpr int directions[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
    public:
        vector<int> spiralOrder(vector<vector<int>>& matrix) {
            if (matrix.size() == 0 || matrix[0].size() == 0) {
                return {};
            }
            
            int rows = matrix.size(), columns = matrix[0].size();
            vector<vector<bool>> visited(rows, vector<bool>(columns));
            int total = rows * columns;
            vector<int> order(total);
    
            int row = 0, column = 0;
            int directionIndex = 0;
            for (int i = 0; i < total; i++) {
                order[i] = matrix[row][column];
                visited[row][column] = true;
                int nextRow = row + directions[directionIndex][0], nextColumn = column + directions[directionIndex][1];
                if (nextRow < 0 || nextRow >= rows || nextColumn < 0 || nextColumn >= columns || visited[nextRow][nextColumn]) {
                    directionIndex = (directionIndex + 1) % 4;
                }
                row += directions[directionIndex][0];
                column += directions[directionIndex][1];
            }
            return order;
        }
    };
  • 相关阅读:
    Saruman's Army
    Best Cow Line
    Lake Counting
    题目1417:变形金刚
    Ants
    mysql学习笔记--数据库事务
    mysql学习笔记--数据库视图
    mysql学习笔记--数据库多表查询
    mysql学习笔记--数据库单表查询
    mysql学习笔记--数据操作
  • 原文地址:https://www.cnblogs.com/USTC-ZCC/p/14541820.html
Copyright © 2011-2022 走看看