2022年11月7日 星期一

[1380] Lucky Numbers in a Matrix (TBD)

ㄜ....先來貼個第一版(?!)
感覺再冷靜想想可以把它用一個雙層迴圈解掉而不是兩個?!
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* luckyNumbers (int** matrix, int matrixSize, int* matrixColSize, int* returnSize){
int* rowMin = calloc (matrixSize, sizeof(int));
int tmpMin=100000;
for(int j=0;j<matrixSize;j++)
{
tmpMin=100000;
for (int i=0;i<*matrixColSize;i++)
{
if(matrix[j][i]<tmpMin)
tmpMin=matrix[j][i];
}
rowMin[j]=tmpMin;
}
int tmpMax = 0, row=-1, happyCount=0;
int* ret = calloc (matrixSize, sizeof(int));
for(int j=0;j< *matrixColSize;j++)
{
tmpMax=0;
for (int i=0;i<matrixSize;i++)
{
if (matrix[i][j]>tmpMax)
{
tmpMax=matrix[i][j];
row=i;
}
}
if (tmpMax==rowMin[row])
ret[happyCount++]=tmpMax;
}
*returnSize=happyCount;
return ret;
}

沒有留言:

張貼留言