美文网首页
LeetCode 832. Flipping an Image

LeetCode 832. Flipping an Image

作者: intuitive | 来源:发表于2018-08-10 05:04 被阅读0次
    Flipping an image
    /**
     * Return an array of arrays of size *returnSize.
     * The sizes of the arrays are returned as *columnSizes array.意思是返回一个指针指向一个数组,所以才会是指针的指针,不要片面理解为指向二维数组
     *注意返回指向一个数组的指针和指向一个二维数组的指针
     * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
     */
    
    int** flipAndInvertImage(int** A, int ARowSize, int *AColSizes, int** columnSizes, int* returnSize) {
        *returnSize = ARowSize;//row size
        int colsize = *AColSizes;//col size
        
        int** retarr = (int**)malloc(sizeof(void*) * ARowSize);//新建ARowSize个指针的指针,指针指向的空间大小为void
        *columnSizes = (int*)malloc(sizeof(int) * ARowSize);//新建ARowSize个指针,指针指向的空间大小为int大小
        
        for (int i = 0; i < ARowSize; i ++) {
            int* one = A[i];//指针指向该行第一个int
            int* newone = (int*)malloc(sizeof(int) * colsize);//新建一个空行,行元素为int大小
            
            for (int j = 0; j < colsize; j ++) {
                int t = one[j];
                if (t == 1) t = 0;
                else t = 1;//取j位置值并反转
                newone[colsize - j - 1] = t;//放置在空行对称位置
            } 
            
            retarr[i] = newone;//行指针指向该行
            (*columnSizes)[i] = colsize;//
        }
        return retarr;//返回指针的指针
    }
    //该int** columnSizes指针仅仅只使用了第一行,后面的行没有使用
    

    相关文章

      网友评论

          本文标题:LeetCode 832. Flipping an Image

          本文链接:https://www.haomeiwen.com/subject/ptihbftx.html