美文网首页
(格雷码)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