专题五——位运算
目录
一认识位运算
二判定字符是否唯一
二丢失的数字
三两整数之和
四只出现一次的数字Ⅱ
五只出现一次的数字Ⅲ
六消失的两个数字
一认识位运算
二判定字符是否唯一
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}; } };
以上便是位运算相关的题目,有问题欢迎在评论区中指出,谢谢!
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。