题目:
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
题解:
要求需要线性时间,不使用更多的内存空间。
可以通过异或操作进行解决该问题。位操作,当两个一样的数进行异或时结果为0,当两个不一样的数进行操作时,结果为1。
public class Solution {
public int singleNumber(int[] nums) {
int result =0;
for(int i=0;i<nums.length;i++)
result ^=nums[i];
return result;
}
}

本文介绍了一种线性时间复杂度的算法来找出数组中只出现一次的元素,利用异或操作的特点,无需额外内存。

456

被折叠的 条评论
为什么被折叠?



