美文网首页
Single Number

Single Number

作者: ab409 | 来源:发表于2015-10-21 21:54 被阅读80次

Single Number


今天是一道有关位运算的题目,来自LeetCode(#136),难度为Medium,Acceptance为46.5%

这类题目不需要太多的算法知识,需要的知识位运算的基础知识和经验。

题目如下

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 ?

解题思路及代码见阅读原文

思路如下

其实,该题的思路较为简单,只要想到使用位运算就很容易想到。题目中除一个数之外,其他数字都出现两次,可以想到两个相同的数做异或得到了,这样将所有的数做异或就可以得到那个只出现一次的数。

代码如下

java版
public class Solution {
    /**
     *@param A : an integer array
     *return : a integer 
     */
    public int singleNumber(int[] A) {
        int ans = 0;
        for(int i : A)
            ans ^= i;
        return ans;
    }
}
c++版
int singleNumber(int A[], int n) {
    int result = 0;
    for (int i = 0; i<n; i++) {
        result ^=A[i];
    }
    return result;
}

相关文章

  • 一篇文章搞懂面试中leetcode位操作算法题

    Single Number落单的数 落单的数 IISingle Number II Single Number I...

  • single number

    题目描述 给定一个整数数组,除了一个元素外,每个元素都会出现两次。找到那一个出现一次的元素。注意:时间复杂度O(n...

  • Single number

    用异或

  • Single Number

    题目要求找出在算法的时间复杂度为线性时间,且不占据额外的内存 下面讲解算法:该算法主要用到了位运算中的异或运算^,...

  • Single Number

    Single Number 今天是一道有关位运算的题目,来自LeetCode(#136),难度为Medium,Ac...

  • Single Number

    Problem Given an array of integers, every element appears...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    按位亦或可求解,复杂度为O(n)

  • Single Number

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single...

网友评论

      本文标题:Single Number

      本文链接:https://www.haomeiwen.com/subject/fgcthttx.html