【C++】位运算

缺失数字

http://www.nowcoder.com/questionTerminal/9ce534c8132b4e189fd3130519420cde

class Solution {
public:
    int solve(int* a, int aLen) { //a是数组指针,aLen是数组长度
        int res = 0; 
        for(int i = 0; i < aLen; i++)
            res ^= a[i] ^ (i + 1); //本质上是把a中所有数和0~aLen做异或运算,这样相同的数字抵消剩下a中没有的数字(0是res的初始值,所以这里实际上是1~aLen参与异或运算)
        return res;
    }
};
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务