思维训练(二)如何找到缺失的数
题目 在一个无序数组中有99个不重复的正整数,范围为1到100,唯独缺少1个1到100中的整数,如何找到缺失的整数 思路: sum(100)-sum(99) 拓展一: 一个无序数组里有若干正整数,范围1到100, 其中99个整数出现了偶数次,只有一个正整数出现了奇数次,如何找到这个奇数次的整数? 思路:每次出现数字,或二进制问题的时候,脑子里要有一个弦,异或xor 异或的特点是:不同为1,相同为0,所以一个数异或自身为0. a xor b xor b = a 异或在java语言中也常用来 不借助第三方变量来交换两个数的值 以上为发散思维扩展 对于本题,将所有数异或,得到的结果就是这个奇次整数
暂无评论