zoukankan      html  css  js  c++  java
  • [LeetCode] 136. Single Number(位操作)

    传送门

    Description

    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(1)找出这个数。

    题解:因为题目只有一个数出现一次,其他数出现两次,因此很容易想到用异或运算符来求解,主要是以前做过类似的题,不然应该也挺难想到要用异或运算符吧

     
     
    C++:
    class Solution {
    public:
        //13ms
        int singleNumber(vector<int>& nums) {
            int res = 0;
            for (unsigned i = 0;i < nums.size();i++){
                res ^= nums[i];
            }
            return res;
        }
    };
    

    Java:

    public class Solution {
        //1ms
        public int singleNumber(int[] nums) {
            int res = 0;
            for (int i = 0;i < nums.length;i++){
                res ^= nums[i];
            }
            return res;
        }
    }
    
  • 相关阅读:
    17.10.13
    17.10.12
    17.10.11
    17.10.10
    17.10.05
    17.10.04
    17.10.03
    17.10.02
    17.10.01
    17.9.29
  • 原文地址:https://www.cnblogs.com/ZhaoxiCheung/p/7361943.html
Copyright © 2011-2022 走看看