找到丢失的数,异或运算解题
// 存在一个数组A包含n-1个数,这些数为1到n之间的整数,请找到丢失的数? // 这里采用异或运算(都为二进制运算): // 1.相同数异或为0 // 2.不同值异或为1 // 3.0^0 = 0 // 4.0^x = x (x不为0) // 5.x^y^z = x^(y^z) 可以使用交换律 // 解题思路:数组A中存在n-1个数,那么n个数中一定包含数组A中的所有数,根据异或运算相同数异或为0,我们将n个数与数组A异或,n-1个数最终异或结果为0,0与除0外任意数异或为任意数,这样就可以找到丢失的数了 function XORFun(arr,n){ //数组A为arr // 默认初始值为0 let result = 0; // 遍历n个数 for(let i = 1;i<=n;i++){ result ^=i; } // 遍历数组A中的n-1个数 arr.forEach(item=>{ result ^=item }) // 返回丢失的数 return result; } console.log(XORFun([1,2,3,4,5,6,8,9,10,11],11))//7
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了