leetcode 260. 只出现一次的数字 III

在这里插入图片描述

		class Solution {
public:
    vector<int> singleNumber(vector<int>& nums) {
        int res=0,rec=0,k=0;
      for(auto p:nums) res^=p;//res存储的是此时两个单独的数的异或值;
      while(!(res>>k&1))k++;//先找到res第一个1在第几位;然后再从nums找该位为1的所有数异或起来
      for(auto p:nums)
      if(p>>k&1)rec^=p;//此时rec存储的是第k位是1的其中一个单身狗,然后和res异或就可以获得另一个单身狗的值~
      return vector<int>({rec,res^rec});
     
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值