Advertisement
Guest User

Untitled

a guest
Apr 20th, 2017
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. /**
  2. * Return an array of size *returnSize.
  3. * Note: The returned array must be malloced, assume caller calls free().
  4. */
  5. int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {
  6.  
  7. int *arr;
  8. int temp1, temp2;
  9. int i=0, j=0;
  10.  
  11. for(i=0;i<numsSize;i++) {
  12. if(nums[i] != 0) {
  13. temp1 = nums[nums[i]-1];
  14. nums[nums[i]-1] = 0;
  15. while(temp1 != 0) {
  16. temp2 = nums[temp1-1];
  17. nums[temp1-1] = 0;
  18. temp1 = temp2;
  19. }
  20. }
  21. }
  22.  
  23. for(i=0;i<numsSize;i++) {
  24. if(nums[i] != 0)
  25. *returnSize = *returnSize + 1;
  26. }
  27. arr = (int *) malloc((*returnSize)*sizeof(int));
  28. for(i=0;i<numsSize && j < *returnSize;i++) {
  29. if(nums[i] != 0)X
  30. arr[j++] = i+1;
  31. }
  32. return arr;
  33.  
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement