Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Return an array of size *returnSize.
- * Note: The returned array must be malloced, assume caller calls free().
- */
- int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {
- int *arr;
- int temp1, temp2;
- int i=0, j=0;
- for(i=0;i<numsSize;i++) {
- if(nums[i] != 0) {
- temp1 = nums[nums[i]-1];
- nums[nums[i]-1] = 0;
- while(temp1 != 0) {
- temp2 = nums[temp1-1];
- nums[temp1-1] = 0;
- temp1 = temp2;
- }
- }
- }
- for(i=0;i<numsSize;i++) {
- if(nums[i] != 0)
- *returnSize = *returnSize + 1;
- }
- arr = (int *) malloc((*returnSize)*sizeof(int));
- for(i=0;i<numsSize && j < *returnSize;i++) {
- if(nums[i] != 0)X
- arr[j++] = i+1;
- }
- return arr;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement