【leetcode】54. 螺旋矩阵

 

int* spiralOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize){
    *returnSize = matrixSize*(*matrixColSize);
    int* arr = (int*)calloc(*returnSize, sizeof(int));
    int up = 0, down = matrixSize - 1, left = 0, right = (*matrixColSize) - 1, pst = 0, i;
    while (pst < *returnSize){
        for (i = left; i <= right && up<=down && left<=right; i++)
            arr[pst++] = matrix[up][i];
        up++;
        for (i = up; i <= down && up <= down && left <= right; i++)
            arr[pst++] = matrix[i][right];
        right--;
        for (i = right; i >= left && up <= down && left <= right; i--)
            arr[pst++] = matrix[down][i];
        down--;
        for (i = down; i >= up && up <= down && left <= right; i--)
            arr[pst++] = matrix[i][left];
        left++;
    }
    return arr;
}

 

posted @ 2020-12-10 22:03  温暖了寂寞  阅读(107)  评论(0编辑  收藏  举报