首页 > 其他 > 详细

Single Number

时间:2015-04-23 12:38:20      阅读:147      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!