题目描述:
Given a non-empty array of integers nums
, every element appears twice except for one. Find that single one.
You must implement a solution with a linear runtime complexity and use only constant extra space.
int singleNumber(int* nums, int numsSize){
int singleNumber;
int i,j = 0;
for ( i= 0; i<numsSize; i++){
for (j=i; j<numsSize; j++){ //设置循环
if (nums[i] == nums[j]) //两两比较,
nums[i] = nums[j] = 1; //若一样赋值1
}
}
for(i=0; i<numsSize; i++){
if (nums[i] != 1){ //遍历寻找非1项目
singleNumber = nums[i];
break; //找到即停止
}
}
return singleNumber; //输出
}
思路:1.先进行循环比较 2.对同样的值进行标记 3.再循环输出
注意第三步找到后要使用break跳出。
整体上难度一般,主要考察循环与if