位运算
巴巴多斯小魔
这个作者很懒,什么都没留下…
展开
-
leetcode 面试题 17.19. 消失的两个数字(数字之和/位运算/置换)
题目 位运算 与这个题差不多: leetcode 260. 只出现一次的数字 III(只有两个元素出现一次,别的都出现两次 求这两个元素 异或) 求出dif后,dif与所有nums[i],1-n假如dif&他们!=0 的话,都与他们 异或一下,这下重复的数字会就算&dif!=0,但由于重复出现两次会消掉,剩下的就是缺失两个数字其中一个&dif!=0的数。 class Solution { public: vector<int> missingTwo(vector原创 2020-11-19 10:59:58 · 114 阅读 · 0 评论 -
leetcode 260. 只出现一次的数字 III(只有两个元素出现一次,别的都出现两次 求这两个元素 异或)
题目 class Solution { public: vector<int> singleNumber(vector<int>& nums) { int sum=0; for(int i=0;i<nums.size();++i) sum^=nums[i]; int dif=sum&(-sum),x=0,y=0; for(int i=0;i<nums.size();++i) if(n原创 2020-11-19 10:50:42 · 111 阅读 · 0 评论 -
leetcode 136. 只出现一次的数字 137. 只出现一次的数字 II(位运算)
题目 class Solution { public: int singleNumber(vector<int>& nums) { int sum=0; for(int i=0;i<nums.size();++i) sum^=nums[i]; return sum; } }; 题目 第2种解法: 要达到这样的一种效果: 第一次遇见x: one=x,two=0;//这里two并没有等于x原创 2020-11-19 10:16:10 · 62 阅读 · 0 评论