zoukankan      html  css  js  c++  java
  • leetcode Spiral Matrix

    题目连接

    https://leetcode.com/problems/spiral-matrix/ 

    Spiral Matrix

    Description

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

    For example, 
    Given the following matrix:


      [ 1, 2, 3 ], 
      [ 4, 5, 6 ], 
      [ 7, 8, 9 ] 

    You should return [1,2,3,6,9,8,7,4,5].

    蛇形填数。。

    class Solution {
    public:
    	vector<int> spiralOrder(vector<vector<int>>& matrix) {
    		ans.clear();
    		if (matrix.empty() || matrix[0].empty()) return ans;
    		n = matrix.size(), m = matrix[0].size();
    		int x = 0, y = 0, tot = 1;
    		vector<vector<int>> vis(n, vector<int>(m));
    		ans.push_back(matrix[x][y]), vis[x][y] = true;
    		while (tot < n * m) {
    			while (y + 1 < m  && !vis[x][y + 1]) ans.push_back(matrix[x][++y]), vis[x][y] = true, tot++;
    			while (x + 1 < n  && !vis[x + 1][y]) ans.push_back(matrix[++x][y]), vis[x][y] = true, tot++;
    			while (y - 1 >= 0 && !vis[x][y - 1]) ans.push_back(matrix[x][--y]), vis[x][y] = true, tot++;
    			while (x - 1 >= 0 && !vis[x - 1][y]) ans.push_back(matrix[--x][y]), vis[x][y] = true, tot++;
    		}
    		return ans;
    	}
    private:
    	int n, m;
    	vector<int> ans;
    };
  • 相关阅读:
    react-redux-reducer
    react-redux-action
    node-express-2-jade
    node-express-1
    vuex-Module
    vuex-Action(异步)
    vuex-Mutation(同步)
    vuex-getter
    vuex-state
    ##DAY7 UINavigationController
  • 原文地址:https://www.cnblogs.com/GadyPu/p/5040125.html
Copyright © 2011-2022 走看看