码迷,mamicode.com
首页 > 其他好文 > 详细

Single Number

时间:2015-04-23 12:41:05      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

摘抄自http://www.cnblogs.com/springfor/p/3870801.html

 

这道题运用位运算的异或。异或是相同为0,不同为1。所以对所有数进行异或,得出的那个数就是single number。初始时先让一个数与0异或,然后再对剩下读数挨个进行异或。

这里运用到异或的性质:对于任何数x,都有x^x=0,x^0=x

 

public class Solution {
    public int singleNumber(int[] nums) {
        // 还是乖乖学习一下异或吧
        if(nums.length==1)return nums[0];
        int res = 0;
        for(int i=0;i<nums.length;i++){
            res ^= nums[i];
        }
        return res;
    }
}

hash 法,引用别人说法“如果A[i]不在hash table中,则插入,如果已经在,则在hash table中删除,最后table中剩下的就是要找的数。但排序法事件复杂度是O(nlogn),而hash table尽管是O(n)事件复杂度,需要o(n)的extra memory。”

Single Number

标签:

原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4450018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!