2022年11月29日 星期二

[1637] Widest Vertical Area Between Two Points Containing No Points

給一組(x,y), 雖然題目寫了一段,但意思就是求兩兩x 之間的最遠距離, y可以完全不管。
所以偷吃步就是~~~弄一個x array出來做sorting XD 但這樣當然慢一點
int comp(const void *a, const void *b){
return *(int *)a - *(int *)b;
}

int maxWidthOfVerticalArea(int** points, int pointsSize, int* pointsColSize){
int *sortX=calloc(pointsSize, sizeof(int));
for (int i=0; i<pointsSize; i++)
sortX[i]=points[i][0];

qsort( (void *)sortX, pointsSize, sizeof(int), comp);
int diff=0;
for (int i=1;i<pointsSize;i++)
if (sortX[i]-sortX[i-1]>diff)
diff = sortX[i]-sortX[i-1];

return diff;
}

所以~~~~應該要改寫qsort的comp function ?!
sorting 二維的部分, 用先宣告好的array[a][b]跟 雙pointer  int ** array; 好像是不一樣的
(為什麼呢XD)
int comp(const void *a, const void *b)
{
int *A= *(int **)a;
int *B= *(int **)b;
return A[0]-B[0];
}

int maxWidthOfVerticalArea(int** points, int pointsSize, int* pointsColSize){
qsort((void *)points, pointsSize, sizeof(points[0]), comp);
int diff=0;
for (int i=1;i<pointsSize;i++)
if (points[i][0]-points[i-1][0]>diff)
diff = points[i][0]-points[i-1][0];
return diff;
}

沒有留言:

張貼留言