体验位运算的魅力。

发布时间 2023-10-31 20:05:06作者: 小熊猫ovo

  如果计算机有什么基础知识,那么位运算和二进制一定首当其冲,位运算在目前的面对对象编程中并不算很重要,可在汇编中是极其重要的一个知识。

先简单了解一下位运算,

常见的位运算有哪些:

今天我们主要使用异或运算,简单的介绍一下异或运算。

运算规则:相同为0,不同为0。

  N ^ 0 = N

  N ^  N = 0

  a ^ b = b ^a

 (a ^ b) ^ c = a ^ (b ^ c)

好,那么我们就用这几个性质做一道题。

136只出现一次的数字

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

 

示例 1 :

输入:nums = [2,2,1]
输出:1

示例 2 :

输入:nums = [4,1,2,1,2]
输出:4

示例 3 :

输入:nums = [1]
输出:1
class Solution {
    public int singleNumber(int[] nums) {
    int res = 0;
    for (int i = 0 ; i < nums.length; i ++)
    {res^= nums[i];

    
    }
    return res ;
    }
}

非常巧妙的方法,当然如果在工作中不是极致要求代码运算的速度,还是不建议使用位运算的,降低代码可读性。容易被架构师喷。