关闭

136. Single Number

标签: leetcode
51人阅读 评论(0) 收藏 举报

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?

大意:给定一个数组,除了一个元素,其它每个元素都出现了两次,找出这个出现一次的元素。时间复杂度O(n), 空间复杂度O(1).

由于数组中除一个元素外 其他元素都出现了2次,因此出现偶数次的元素异或(即二进制模2加)后为0, 因此所以元素异或后即得到只出现一次的数字!

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int sum=0;
        for(int i=0;i<nums.size();i++)
        {
            sum = sum ^ nums[i];

        }
        return sum;

    }
};
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20369次
    • 积分:567
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:24篇
    • 译文:0篇
    • 评论:2条
    最新评论