2018年2月26日 星期一

[221] Maximal Square

不知道該說什麼QQ
反正是很沮喪的一天 QQ
先這樣吧QQ

找0,1矩陣裡最大的正方形
偷吃步的改了input
但是關鍵的傳值一直沒寫對
原來要用min QQ
感覺總是差那個最重要的臨門一腳
覺得傷心QQ

Maximal Square
int findmin(int a, int b, int c)
{
    if (a <= b && a <= c)
        return a;
    if (b <= a && b <= c)
        return b;
    if (c <= a && c <= b)
        return c;
    return a;
}

int maximalSquare(char** matrix, int matrixRowSize, int matrixColSize) {
    if (matrixColSize < 1 || matrixRowSize < 1)
        return 0;

    int i,j,max;
    for(i=0;i<matrixRowSize;i++)
        for(j=0;j<matrixColSize;j++)
        {          
            matrix[i][j] = matrix[i][j] - '0';
            if (i==0 || j==0)
                continue;

            if (matrix[i][j] > 0)
            {
                if (matrix[i-1][j-1] > 0 && matrix[i-1][j] > 0 && matrix[i][j-1] > 0)
                {    
                    int min = findmin(matrix[i-1][j-1],matrix[i-1][j],matrix[i][j-1]);
                    matrix[i][j] = min+1;
                }
            }
        }
    max = 0;
    for(i=0;i<matrixRowSize;i++)
        for(j=0;j<matrixColSize;j++)
            if (matrix[i][j] > max)
                max = matrix[i][j];
    return (max*max);
 
}

沒有留言:

張貼留言