/**
* Note: The returned array must be malloced, assume caller calls free().
*/
inline int abs(int a){
return a>0 ? a:-a;
}
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){
int *ret = (int *)malloc(sizeof(int) * numsSize);
int index = 0;
int i;
for(i=0; i<numsSize; i++){
if(nums[abs(nums[i])-1] > 0){
nums[abs(nums[i])-1] = -1 * nums[abs(nums[i])-1];
}
}
for(i=0; i<numsSize; i++){
if(nums[i] > 0){
ret[index++] = i+1;
}
}
*returnSize = index;
return ret;
}