1、 ^ 无进制 按位 相加 (有1才有1)
2、 | 无进制 按位 相减 (不同才有1)
3、 & (同1才1)
4、 >> 右移运算符 (例如: a >> 1 相当于 a / 2 ,但是 二进制运算会比 / 快)
eor & (~eor + 1);
使用一个暴力解用于保证一定能解决此问题,然后随机生成样本,比较当前认为最优解,和暴力解的计算结果,如果随机生成 500000次都是一样的,大概率可以认为 最优解是正确的
mid = L + ((R - L) >> 1);
不建议通过 (L + R) / 2 ,因为容易溢出,没有相加前两个数较大接近溢出,那么一相加绝对溢出