Middle-题目1:136. Single Number

题目原文:
Given an array of integers, every element appears twice except for one. Find that single one.
题目大意:
给出一个数组,除了一个元素出现一遍以外,所有元素都出现了两遍。找到这个单个的元素。
题目分析:
把所有元素都按位异或起来,最终的异或值就是那个单独的元素。
原因:因为1⊕1=0⊕0=0,1⊕0=0⊕1=1,所以两个相同的数异或起来必为0,而0异或任何数都是它本身。
源码:(language:c)

public class Solution {
    public int singleNumber(int[] nums) {
        int single=0;
        for(int i=0;i<nums.length;i++)
            single=single^nums[i];
        return single;
    }
}

成绩:
1ms,38.79%,众数1ms,61.21%

阅读更多
版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs https://blog.csdn.net/cmershen/article/details/51546074
个人分类: Leetcode
上一篇Easy-题目73:350. Intersection of Two Arrays II(增补6)
下一篇Middle-题目2:260. Single Number III
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭