@ninijiaLeetcode每日一题练习 ------ 2429. 最小异或 中发帖

从Leetcode 每日一题练习继续讨论: 
2429. 最小异或
2429. Minimize XOR
题解
本题可以分为两个任务,第一个计数num2中的二进制1的个数,第二个尝试与num1异或并得到一个最小的结果。对于第一个任务在昨天的问题中也有涉及,可以使用Brian Kernighan算法。要考虑的主要是第二个问题,当num2中二进制1的个数小于等于num1时,要想得到最小值,则与num1中的二进制1从左到右(从高位到低位)挨个异或,通过不断消除当前最高位的1来减少最多的值,最终得到一个最小的结果。
当num2中二进制1的个数大于num1时,首先肯定可以将num1中的1全部通过异或消除,但还有多余的1,这些1必然要与num1中的0异或得到1,此时的思路就与消除1时正好相反,要尽可能与num1中最低位的0异或这样才能增加最少的值最终得到最小的结果。
按照这个思路先从最高位尝试...