异或运算&位运算

【想转Java刷算法题 不知道合不合适= = 也可以先不转 先看书】
任何数和 0 做异或运算,结果仍然是原来的数,即 a ⊕ 0=a⊕0=a。
任何数和其自身做异或运算,结果是 0,即 a ⊕ a=0 a⊕a=0。
异或运算满足交换律和结合律,即 a⊕ b⊕a=b ⊕a ⊕ a=b ⊕(a ⊕ a)=b ⊕0=b a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/single-number/solution/zhi-chu-xian-yi-ci-de-shu-zi-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相同的还有LC136

LeetCode刷题 木有写出来,涉及异或 Mark学习

一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。

 

示例 1:

输入:nums = [4,1,4,6]
输出:[1,6] 或 [6,1]
示例 2:

输入:nums = [1,2,10,4,1,4,3,3]
输出:[2,10] 或 [10,2]
 

限制:

2 <= nums <= 10000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
public:
    vector<int> singleNumbers(vector<int>& nums) {
        //遍历一遍就能找到
        int a=0;
        
        vector<int> res;
       for(int i=0;i<nums.size();i++){
           a^=nums[i];
       }//异或结果一定是b异或c,两个数
        int b=0;
        int c=0;
        //涉及到分组,如何分
        int x=1;
        while((x&a)==0){//两个位数相同,&按位与,必须用&
//两个不同的数,必然有不同的一位,那么这一位为1。找到不同的一位
            x<<=1;
        }
        //找到两个位不同的
        
            
        for(int i=0;i<nums.size();i++){
            if(x&nums[i]){//这里也要按位与 不同的那一位为1的,分为一组
                b^=nums[i];
            }else{//不同那一位为0的,分为一组
                c^=nums[i];
            }

                
        }
            res.push_back(b);
            res.push_back(c);
        return res;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 真的是很惊险,我差一点就错过了”获得新生“的机会,我在蜻蜓音频中听到了逻辑思维,从逻辑思维中了解到了”得到“,从“...
    心随猫行阅读 2,394评论 0 0
  • 1. 你的脸上云淡风轻,谁也不知道你的牙咬得有多紧。你走路带着风,谁也不知道你膝盖上仍有曾摔伤的淤青。你笑得没心没...
    金指尖的花园阅读 2,806评论 0 2
  • 今日做下的事: 看专栏文章,看小说。 写读后感,写日记总结,写庆功宴要说的话。 跑步,练散打,练双截棍,学习地面格...
    文建伟CZYH阅读 2,622评论 0 0
  • 5.14感恩日记 1.感恩今天顺利工作,出了很多业绩! 2.感恩专卖店生意越来越好,很快达成100万,200万,每...
    a4decf79fbd7阅读 1,274评论 0 1

友情链接更多精彩内容