/**
* 算法思想:
* 遍历数组,将arr[i]-1为下标的元素设置为其相反数,等下次发现某元素<0时,则说明该
* 元素被访问过,转换为其本身数后入栈即可。
*/
int abs(int a){
return a>0 ? a:-a;
}
int* findDuplicates(int* nums, int numsSize, int* returnSize){
int *ret = (int *)malloc(sizeof(int) * numsSize);
int ret_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];
else
ret[ret_index++] = abs(nums[i]);
}
*returnSize = ret_index;
return ret;
}
leetCode-442-数组中重复的数据-C语言
最新推荐文章于 2024-02-22 17:55:55 发布