给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1
示例 2: 输入: [4,1,2,1,2] 输出: 4
C
int singleNumber(int* nums, int numsSize) { int f=0,e=numsSize-1; for(int i=1;i<=e;i++) { if(nums[f]==nums[f+i]) { nums[f+i]=nums[e]; ++f; --e; if(f==e) break; i=0; continue; } if((f+i)==e) break; } return nums[f]; } --------------------- 作者:yangsong95 来源:CSDN 原文:blog.csdn.net/yangsong95/… 版权声明:本文为博主原创文章,转载请附上博文链接! |
|