- 博客(2)
- 收藏
- 关注
原创 一个数组里除两个数字外,其他数组都出现了两次,找出这两个只出现一次的数字
首先来看看 异或^我们知道: 相同的两个数异或为0,不同的两个数异或为1 0和任何数异或都为原本的数 例如:(int 是32bit,省略的用8bit) /* 3 ^ 5 0000 0011 - 3 0000 0101 - 5 0000 0110 - ^ */ 根据异或的特性我们可以这样思考: 既然数组里除了两个数组出现单次外,其他数字都出现了双次。那么我们它数组里面所有的数字都异或,得出的就是这两个单次数的异或。例如: /* 1 ^ 2 ^ 3 ^ 5 ^ 1 ^ 2 0...
2021-08-06 22:04:19
332
1
原创 找出0 ~ n中所有整数中缺失的一个数
开始前我们先来了解一下 异或^ ^ 按位异或 - 相同为0 不同为1 /* * ^ 按位异或 - 相同为0 不同为1 * 注意:操作的必须是整数 * * 例:3 ^ 5 * 0000 0011 - 3 * 0000 0101 - 5 * 0000 0110 - 异或后 */ 我们现在 3 异或 5 得到的是 0000 0110 那么我们现在再试一下 3 异或 5 异或 3得到什么(3^5^3) /* 3 ^ 5 * 0000 0011 - 3 * 0000 0101 - 5 * 0...
2021-08-06 09:53:07
1296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人