題目:
解答:
int find(int val, const int *nums, int len) { int cc = 0; for (cc = 0; cc < len ; cc++) { if (val == nums[cc]) { return 1; } } return 0; } int** findDifference(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize, int** returnColumnSizes) { int cc = 0; int idx = 0; int **r = malloc(sizeof(int *) * 2); for (cc = 0; cc < 2; cc++) { r[cc] = malloc(sizeof(int) * 1000); } *returnSize = 2; *returnColumnSizes = malloc(sizeof(int) * 2); idx = 0; for (cc = 0; cc < nums1Size; cc++) { if (find(nums1[cc], nums2, nums2Size) == 0) { if (find(nums1[cc], r[0], idx) == 0) { r[0][idx++] = nums1[cc]; } } } (*returnColumnSizes)[0] = idx; idx = 0; for (cc = 0; cc < nums2Size; cc++) { if (find(nums2[cc], nums1, nums1Size) == 0) { if (find(nums2[cc], r[1], idx) == 0) { r[1][idx++] = nums2[cc]; } } } (*returnColumnSizes)[1] = idx; return r; }