59.螺旋矩阵II

版权声明:孔庆鑫 https://blog.csdn.net/kongqingxin12/article/details/85337548

59.螺旋矩阵II
附加调试

class Solution {
public:
	vector<vector<int>> generateMatrix(int n) {
		vector<vector<int>>matrix(n, vector<int>(n));
		dis(matrix);
		int x = 0, y = 0;
		bool x_axis = 0, y_axis = 0;
		for (int i = 1; i < pow(n, 2) + 1; ++i) {
			if (!x_axis && !y_axis)
			{
				matrix[x][y] = i;
				y++;
				if (y == n || matrix[x][y] != 0)
					x++, y--, y_axis = 1;
			}
			else if (!x_axis&&y_axis)
			{
				matrix[x][y] = i;
				x++;
				if (x == n || matrix[x][y] != 0)
					y--, x--, x_axis = 1;
			}
			else if (x_axis&&y_axis)
			{
				matrix[x][y] = i;

				y--;
				if (y < 0||matrix[x][y] != 0)
					x--, y++, y_axis = 0;
			}
			else if (x_axis && !y_axis)
			{
				matrix[x][y] = i;

				x--;
				if (x<0||matrix[x][y] != 0)
					y++, x++, x_axis = 0;
			}
			dis(matrix);
		}
		return matrix;
	}
	void dis(vector<vector<int>>s)
	{
		system("cls");
		for (int i = 0; i < s.size(); ++i) {
			for (int j = 0; j < s[i].size(); ++j) {
				cout << s[i][j] << " ";
			}
			cout << endl;
		}

	}
};

猜你喜欢

转载自blog.csdn.net/kongqingxin12/article/details/85337548