题目1-LeetCode136
先来看一道LeetCode的相似题目,给定一个数组,数组中只有一个数字出现了一次,其余数字都出现了两次,找出出现一次的数字,返回结果。
提示
算法不能使用额外的空间,且时间复杂度是O(1)。
解法
采用异或运算符,^ 相同位为0,不同位是1.所以两个相同的数字进行异或操作,返回结果是0,因此这道题就很容易得出答案了。
代码
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
// 因为只有一个数字出现了一次,其余数字出现了两次,所以遍历数组所有元素进行异或,异或的结果就是出现了一次的数字。
for(int i=0;i