0
点赞
收藏
分享

微信扫一扫

NC38 螺旋矩阵

兮城 2022-03-20 阅读 35
C++

描述

给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。

class Solution {
public:
	vector<int> spiralOrder(vector<vector<int> > &matrix) {
		vector<int> result;
		if (matrix.size() <= 0)//先判断数组是否为空
		{
			return result;
		}
		int top = 0;
		int bottom = matrix.size() - 1;//二维数组大小matrix.size()表示行数
		int left = 0;
		int right = matrix[0].size() - 1;//二维数组大小matrix[0].size()表示列数
		
		while (top <= bottom&&left <= right)
		{
			上面  左到右
			for (int i = left; i <= right; i++)
			{
				result.emplace_back(matrix[top][i]);
			}
			++top;//循环结束以后再++

			//右边 上到下
			for (int i = top; i <= bottom; i++)
			{
				result.emplace_back(matrix[i][right]);
			}
			--right;//循环结束以后再++

			//下面  右到左
			for (int i = right; top <= bottom&&i >= left; i--)//判断top <= bottom
			{
				result.emplace_back(matrix[bottom][i]);				
			}
			--bottom;//循环结束以后再++

			//左边 下到上
			for (int i = bottom; left <= right&&i >= top; i--)//判断left <= right
			{
				result.emplace_back(matrix[i][left]);				
			}
			++left;//循环结束以后再++
		}
		return result;

	}
};

 

举报

相关推荐

0 条评论