奇妙多多位运算

奇妙多多位运算

首页休闲益智奇妙数学逻辑更新时间:2024-05-03

异或

异或(exclusive OR,缩写成xor)是一个数学运算符,它应用于逻辑运算,相同为0,不同为1。

异或具有以下特点:

  1. 0异或任意一个数字,结果就等于那个数字本身
  2. 两个相同的数字进行异或运算,结果等于0
实战

存在一个数组nums,包含一个或者正整数,其它数字都出现2次,只有一个数字出现了1次。

找出仅出现一次的数字。

[传统]方式一:将数字和出现的次数存入Map,最后从Map中查询出出现一次的数字

const nums = [1,2,3,4,3,2,1] var map = new Map(); for(let i=0; i<nums.length; i ) { let key = nums[i] '' let val = map.get(key); if(val) { map.set(key, val) continue; } map.set(key, 1) } let ret = 0 for (let key of map.keys()) { if(1 === map.get(key)) { ret = key; break; } } console.log(ret)

方式二:遍历数字,使用异或运算

var nums = [1,2,3,4,3,2,1] let ret = 0; for(let i=0; i<nums.length; i ) { ret ^= nums[i] } console.log(ret)

方式三:通过reduce进行异或运算

var nums = [1,2,3,4,3,2,1] let ret = arr.reduce((a, b)=>a^b) console.log(ret),

大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved