题解 | #螺旋矩阵#

螺旋矩阵

https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

/**
 * 
 * @param matrix int整型二维数组 
 * @param matrixRowLen int matrix数组行数
 * @param matrixColLen int* matrix数组列数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
int* spiralOrder(int** matrix, int matrixRowLen, int* matrixColLen, int* returnSize ) {
    // write code here
    if (matrix == NULL)
        return NULL;
    int *arr = (int*)malloc(sizeof(int) * (matrixRowLen * (*matrixColLen)));        //存放返回的数组
    int inRow = 0;
    int inCol = 0;
    int i = 0;
    int finRow = matrixRowLen - 1;
    int finCol = (*matrixColLen) - 1;
    if (*matrixColLen == 1 && matrixRowLen == 1)
    {
        arr[0] = matrix[0][0];
    }
    else 
    {
        while (i <= (matrixRowLen * (*matrixColLen) - 1))
        {
            if (i <= (matrixRowLen * (*matrixColLen) - 1))
            for (int k = inCol; k <= finCol; k++)//上面一行
            {
                arr[i++] = matrix[inRow][k];
            }
            inRow += 1;

            if (i <= (matrixRowLen * (*matrixColLen) - 1))
            for (int j = inRow; j <= finRow; j++)//右边一列
            {
                arr[i++] = matrix[j][finCol];
            }
            finCol -= 1;

            if (i <= (matrixRowLen * (*matrixColLen) - 1))
            for (int k = finCol; k >= inCol; k--)//下面一行
            {
                arr[i++] = matrix[finRow][k];
                printf("%d ",k);
            }
            finRow -= 1;

            if (i <= (matrixRowLen * (*matrixColLen) - 1))
            for (int j = finRow; j >= inRow; j--)//左边一列
            {
                arr[i++] = matrix[j][inCol];
            }
            inCol += 1;
        }
    }
    
    *returnSize = matrixRowLen * (*matrixColLen);
    return arr;
}

全部评论

相关推荐

11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务