美文网首页
(格雷码)1611. 使整数变为 0 的最少操作次数

(格雷码)1611. 使整数变为 0 的最少操作次数

作者: 来到了没有知识的荒原 | 来源:发表于2021-08-26 16:55 被阅读0次

    1611. 使整数变为 0 的最少操作次数

    两种gray转binary的写法,后者简单,前者是纯按gray转binary的描述写的(也不全是,还需要理解一下。。)

    class Solution {
     public:
      int minimumOneBitOperations(int gray) {
        if (!gray) return 0;
        int head = 1 << int(log2(gray));
        return head + minimumOneBitOperations((gray ^ head) ^ (head >> 1));
      }
    };
    
    class Solution {
    public:
        int minimumOneBitOperations(int n) {
            int ans = 0;
            while (n) {
                ans ^= n;
                n >>= 1;    
            } 
            return ans;
        }
    };
    

    相关文章

      网友评论

          本文标题:(格雷码)1611. 使整数变为 0 的最少操作次数

          本文链接:https://www.haomeiwen.com/subject/gqdeiltx.html