牛客相当牛:感谢楼主,终于把第一题想明白了,首先, 先考虑二进制位为1的情况,比如100---1100100,要将其转换为31位全为1,x^a ^b, 必须保证x为1的位出现1的次数为奇数,只能是1^1^1或1^0^0, 每个x为1的位有两种情况;然后考虑其他位,使得|a-b|最小,那么不管x是多少,其他剩余的位都为0,所以a和b的位必定相反,a-b最小只有一种情况,因此该位!a = b, a为1b为0或者a为0b为1,最后的结果是: (1 >> num(1的个数) ) >> 1, 然后需要考虑INT_MAX和INT_MIN,如果是这两个数方案除2
投递阿里巴巴等公司10个岗位 >
0 点赞 评论 收藏
分享
爱吃🐠的猫:非科班转c++也是厉害👍,你项目是怎么弄的
投递字节跳动等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: