leetcode-350. 2つの配列の交差II-C言語
1072 ワード
/**
* :
* , 。
*/
int min(int a, int b){
return a < b ? a:b;
}
void swap_addr(int **a, int **b){
int *c = *a;
*a = *b;
*b = c;
}
void swap(int *a, int *b){
int c = *a;
*a = *b;
*b = c;
}
int cmp(int *a, int *b){
if(*a == *b) {
return 0;
}else if (*a < *b)
return -1;
else
return 1;
}
int* intersect(int* arr1, int len1, int* arr2, int len2, int* returnSize){
int j=0, cur_value1, cur_cnt1, cur_value2, cur_cnt2;
int i=0, index=0, k, tmp1, tmp2;
int *ret;
if(len1 < len2){
swap_addr(&arr1, &arr2);
swap(&len1, &len2);
}
ret = (int *)malloc(sizeof(int) * len1);
qsort(arr1, len1, sizeof(int), cmp);
qsort(arr2, len2, sizeof(int), cmp);
i = 0;
j = 0;
while(i