136. Single Number

来源:互联网 发布:数据专业问答题 编辑:程序博客网 时间:2024/06/05 06:34

题目:

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?


题意:

给定一个整数数组,除了其中一个元素只出现一次之外,其他每一个元素都出现两次。

note:

算法要求不使用额外的空间实现线性时间复杂度。


思路一:

直接轮训数组,将数组的每个元素做异或操作,结果即为single number。

代码:20ms

class Solution {public:    int singleNumber(vector<int>& nums) {                int result = nums[0];        for(int i=1; i<nums.size(); i++){            result ^= nums[i];        }                return result;    }};
代码:20ms

class Solution {public:    int singleNumber(vector<int>& nums) {                for(int i=1; i<nums.size(); i++){            nums[0] ^= nums[i];        }                return nums[0];    }};
代码:20ms

class Solution {public:    int singleNumber(vector<int>& nums) {                return nums.size() == 0 ? 0 : accumulate(nums.begin(), nums.end(), 0, bit_xor<int>());    }};

0 0
原创粉丝点击