感谢楼主,终于把第一题想明白了,首先, 先考虑二进制位为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
2 4

相关推荐

想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
投递拓竹科技等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务