核心内容摘要
魂师世界的绝美身影:小舞的传奇与《斗罗大陆》的无限魅力
求解代码publicintsingleNumber(int[]nums){intans0;// 遍历int的每一个二进制位i表示当前处理第i位0是最低位31是最高位for(inti0;i32;i){inttotal0;// 统计当前第i位的总1数for(intnum:nums){// 提取num的第i位值0或1并累加// (num i)将num的第i位移到最低位// 1保留最低位消去其他位得到第i位的实际值0/1total((numi)
;}// 总1数%3≠0 → 唯一数的第i位是1if(total%3!
{// 将1写入ans的第i位1i得到第i位为
其余位为0的数再和ans做或运算ans|(1i);}}returnans;}小贴士对于二进制的每一位0~31位数组中所有数的该位上的1只会来自两部分出现3次的数的该位1➕ 出现1次的数的该位1。
由于3次的数的1相加后总数一定是3的倍数因此该位总1数%3的结果就是唯一数在该位的取值0或1。