专题五——位运算

06-14 1653阅读

目录

一认识位运算

二判定字符是否唯一

 二丢失的数字

三两整数之和 

四只出现一次的数字Ⅱ

五只出现一次的数字Ⅲ

六消失的两个数字


一认识位运算

专题五——位运算

二判定字符是否唯一

oj链接:判定字符是否唯一 

解法:位图的思想(2,3点的结合应用)

class Solution
{
public:
    bool isUnique(string astr)
    {
        int hash = 0;
        for (auto &s : astr)
        {
            if (((hash >> (int)(s - 'a')) & 1) == 1)
                return false; // 判断是否为1
            else
                hash = hash | (1 > i) & 1) == 1)
                a ^= e;
            else
                b ^= e;
        }
        return {a, b};
    }
};

六消失的两个数字

oj链接:面试题 17.19.消失的两个数字

思路:丢失的数字 + 只出现一的数字Ⅲ 的结合而已,超级简单!!

class Solution
{
public:
    vector missingTwo(vector &nums)
    {
        int sum = 0;
        for (auto e : nums)
            sum ^= e;
        for (int i = 1; i > differ) & 1) == 1)
                break;
            differ++;
        }
        int a = 0, b = 0;
        for (auto e : nums)
        {
            if (((e >> differ) & 1) == 1)
                a ^= e;
            else
                b ^= e;
        }
        for (int i = 1; i > differ) & 1) == 1)
                a ^= i;
            else
                b ^= i;
        }
        return {a, b};
    }
};

以上便是位运算相关的题目,有问题欢迎在评论区中指出,谢谢!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]