/**
* 算法思想:
* 借助qsort函数
* 将其中的cmp函数做定制,改变为比较的因素为到原点距离,然后取前K个即可 。
*/
int cmp(const void *a, const void *b){
return (*(int **)a)[0] * (*(int **)a)[0] + (*(int **)a)[1]*(*(int **)a)[1] -
(*(int **)b)[0] * (*(int **)b)[0] - (*(int **)b)[1]*(*(int **)b)[1];
}
int** kClosest(int** points, int pointsSize, int* pointsColSize, int K, int* returnSize, int** returnColumnSizes){
qsort(points, pointsSize, sizeof(int *), cmp);
int *rcs = (int *)malloc(sizeof(int) * K);
int i;
for(i=0; i<K; i++){
rcs[i] = 2;
}
*returnColumnSizes = rcs;
*returnSize = K;
return points;
}
leetcode-973. 最接近原点的 K 个点-C语言
最新推荐文章于 2020-09-07 17:57:38 发布