136. Single Number

来源:互联网 发布:ppp数据库 编辑:程序博客网 时间:2024/06/05 15:09

题目描述【Leetcode】

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?

这道题是找指现了一次的数,我的方法有两种

方法一:先排序,然后再一个一个找,这个运行时间比较长

class Solution {public:    int singleNumber(vector<int>& nums) {        int n = nums.size();        if(n == 0) return 0;        if(n == 1) return nums[0];        if(n == 2) return 0;        sort(nums.begin(),nums.end());        int temp = nums[0];        for(int i = 0; i < n; i += 2 ){            if(i == n-1) return nums[i];            if(nums[i] != nums[i+1]) return nums[i];          }    }};

方法二:用异或来做,简单粗暴运行快

class Solution {public:    int singleNumber(vector<int>& nums) {        int re = nums[0];        for(int i = 1; i < nums.size() ; i++){            re ^= nums[i];       }        return re;    }};
原创粉丝点击