您的位置:首页 > 编程语言 > Java开发

(java)Single Number

2016-01-06 20:40 441 查看
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?

思路:本题时间复杂度要求较高,一时间没想到用位运算,或许也是自己菜吧,位运算用的少。google了一下才知道用位运算可以解决。

本题使用异或预算。因为axorb=bxora; AxorA=0,AxorB=1(A!=B)

0xorALL=ALL;因为本题只有一个数字是单独出现的,所以将所有数字异或一遍的结果就是那个只出现一次的数字。

代码如下(已通过leetcode)

public class Solution {

public int singleNumber(int[] nums) {

int ans=0;

for(int i=0;i<nums.length;i++)

ans^=nums[i];

return ans;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: