题解 | #数组中只出现一次的数(其它数出现k次)#

数组中只出现一次的数(其它数出现k次)

https://www.nowcoder.com/practice/5d3d74c3bf7f4e368e03096bb8857871

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param arr intvector
     * @param k int
     * @return int
     */
    int foundOnceNumber(vector<int>& arr, int k) {
        // 1. binarySum求二进制的每一位的1出现累计次数
        vector<int> binarySum(32);
        for (int i = 0; i < 32; ++i) {
            int sum = 0;
            for (int& x : arr) {
                // x >> i & 1 用于判断x的第i位数字是否为1
                sum += (x >> i & 1);
            }
            binarySum[i] = sum;
        }
        int res = 0;
        for (int i = 0; i < 32; ++i) {
            if (binarySum[i] % k == 0)   continue;
            // 1 << i 说明第i位置是1 通过 | 或运算求res
            res |= 1 << i;
        }
        return res;
    }
};

全部评论

相关推荐

03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
政委qqq:这道题在算法竞赛里唯一考的就是高精度,但是只能难住C++这类语言,Python直接a+b秒天秒地
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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