题解 | #懂二进制# 位运算

懂二进制

https://www.nowcoder.com/practice/120e406db3fd46f09d55d59093f13dd8

逐位比较,m和n分别和1进行“与”操作,

如果相等说明m和n的最后一位相等;否则最后一位不相等并使计数加1

再对m,n都右移一位

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param m int整型
     * @param n int整型
     * @return int整型
     */
    int countBitDiff(int m, int n) {
        int ans = 0;
        while (m != 0 || n != 0) {
            if ((m & 1) != (n & 1)) {
                ans++;
            }
            m = m >> 1;
            n = n >> 1;
        }
        return ans;
    }
};

时间复杂度:O(max(m,n)),取决于m和n的位数

空间复杂度:O(1),没有使用额外的空间

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
07-20 12:08
已编辑
江南大学 图像识别
机械牛马勇闯秋招:把校园经历里面做过的项目,大作业,课设,毕设啥的,扩写,写成具体的项目经历,自我评价缩写别占篇幅,不然这简历真没东西,初筛都过不了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务