这个题目是蓝书上的原题,最近开始补蓝书了.
如果可以的话,我会尽量把上面比较好,比较经典的题目都会重新写一遍.
这题是一道十分经典的位运算题.
首先,根据位运算的特性,即每一位的运算只与这一位有关,与其他位无关.
那么我们可以用每一位上的1和0来进行比较,判断该位上选0还是1更优.
如果初始为0的运算后能得到1,那么肯定选0.
如果初始为1的运算后能得到1,且得到的值t不会超过m,那么就可以选1.
其余情况都选择0.
遍历的话需要从高位到低位(但是跑出来的话从低到高也是对的,不知道是不是数据太水了.
假如0的话每一位都是0,假如1的话每一位都是1.
很显然,逆序的值会大一些,所以需要逆序.
版权声明: 本博客所有文章除特别声明外,著作权归作者所有.转载请注明出处!