int* nextGreaterElement(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){ int hash[10000] = {0}; int i,j; for (i=0; i<nums2Size; i++) { hash[nums2[i]] = i; } for (i=0; i<nums1Size; i++) { for (j=hash[nums1[i]]+1; j<nums2Size; j++) { if (nums2[j] > nums1[i]) { nums1[i] = nums2[j]; break; } } if (j == nums2Size) nums1[i] = -1; } *returnSize = nums1Size; return nums1; }