class Solution { public: void print(vector<vector<int>>& map, vector<int>& ans, int st1, int ed1, int st2, int ed2) { if (st1 > ed1 || st2 > ed2) return; if (st1 == ed1 && st2 == ed2) { ans.push_back(map[st1][ed1]); return; } if (st1 == ed1) { for (int i = st2; i <= ed2; i++) ans.push_back(map[i][ed1]); return; } if (st2 == ed2) { for (int i = st1; i <= ed1; i++) ans.push_back(map[st2][i]); return; } for (int i = st1; i <= ed1; i++) ans.push_back(map[st2][i]); for (int i = st2 + 1; i <= ed2; i++) ans.push_back(map[i][ed1]); for (int i = ed1 - 1; i >= st1; i--) ans.push_back(map[ed2][i]); for (int i = ed2 - 1; i >= st2 + 1; i--) ans.push_back(map[i][st1]); print(map, ans, st1 + 1, ed1 - 1, st2 + 1, ed2 - 1); return; } vector<int> printMatrix(vector<vector<int> > matrix) { int row = matrix.size(); int col = matrix[0].size(); vector<int> ans; print(matrix, ans, 0, col - 1, 0, row - 1 ); return ans; } }; 相当于就是将map换成n,将ans换成printf,不知道怎么搞
点赞 评论

相关推荐

牛客网
牛客企业服务