int* spiralOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize)
{
if(matrixSize == 0 || matrixColSize[0] == 0)
{
*returnSize = 0;
return NULL;
}
int rows = matrixSize, cols = matrixColSize[0];
int total = rows * cols;
int *arr = (int *)malloc(sizeof(int) * total);/*存放数据的一维数组*/
int left = 0, right = cols - 1, top = 0, bottom = rows - 1;
*returnSize = 0;/*返回长度初始化*/
while(left <= right && top <= bottom)
{
for(cols = left; cols <= right; cols++)/*左->右*/
{
arr[(*returnSize)++] = matrix[top][cols];
}
for(rows = top + 1; rows <= bottom; rows++)/*上->下*/
{
arr[(*returnSize)++] = matrix[rows][right];
}
if(left < right && top < bottom)
{
for(cols = right - 1; cols > left; cols--)/*右->左*/
{
arr[(*returnSize)++] = matrix[bottom][cols];
}
for(rows = bottom; rows > top; rows--)/*下->上*/
{
arr[(*returnSize)++] = matrix[rows][left];
}
}
left++;
right--;
top++;
bottom--;
}
return arr;
}
力扣-54. 螺旋矩阵
最新推荐文章于 2024-07-24 16:45:45 发布