1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
class { private: int n, m; bool isValid(vector<vector<int> >& matrix, int x, int y){ if(x < 0 || x >= n || y < 0 || y >= m || matrix[x][y] == INT_MIN) return 0; return 1; } public: vector<int> printMatrix(vector<vector<int> >& matrix) { vector<int> res; if(matrix.empty()) return res; n = matrix.size(); m = matrix[0].size(); int x = 0; int y = 0; while(1){ bool flag = 0; while(isValid(matrix, x, y)) res.push_back(matrix[x][y]), matrix[x][y] = INT_MIN, y++, flag = 1; y--; x++; while(isValid(matrix, x, y)) res.push_back(matrix[x][y]), matrix[x][y] = INT_MIN, x++, flag = 1; x--; y--; while(isValid(matrix, x, y)) res.push_back(matrix[x][y]), matrix[x][y] = INT_MIN, y--, flag = 1; y++; x--; while(isValid(matrix, x, y)) res.push_back(matrix[x][y]), matrix[x][y] = INT_MIN, x--, flag = 1; x++; y++; if(!flag) return res; } } };
|
近期评论