所以偷吃步就是~~~弄一個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;
}
沒有留言:
張貼留言