Leetcode|136. Single Number

【问题描述】

Given a non-empty 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?

Example 1:

Input: [2,2,1]
Output: 1

Example 2:

Input: [4,1,2,1,2]
Output: 4


【解题思路】

思路一:暴力解法,对于每一个数字遍历vector,两重循环,时间复杂度n^2((⊙o⊙)…放弃!)

思路二:运用异或操作,0+a=a,a+b=b+a,eg: 对于[4,1,2,1,2],可以认为是[1,1,2,2,4],最后的结果就是4

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

猜你喜欢

转载自blog.csdn.net/darlingwood2013/article/details/80318633