题解 | #出现一次的牛#

出现一次的牛

https://www.nowcoder.com/practice/ed54a59697a244d2a3c656191d575f22

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int findSingleCow(vector<int>& nums) {
        // write code here
        int ret = 0;
        // 注意 mask 使用 unsigned,不然负数会报错
        for(unsigned int mask = 1; mask > 0; mask <<= 1) {
            int cnt = 0; // 记录 mask 对应位为 1 的数的数量
            for (auto num : nums) {
                if (num & mask) cnt++; 
            }
            if (cnt % 3) ret |= mask; // 如果数量不为 3 的倍数,那么指定牛在该位为 1
        }
        return ret;
    }
};

全部评论

相关推荐

03-31 18:02
门头沟学院 Java
白日梦想家_等打包版:不要的哦佛给我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务