classSolution{public:vector<int>singleNumber(vector<int>&nums){constintxors=accumulate(begin(nums),end(nums),0,bit_xor<>());constintlowbit=xors&-xors;vector<int>ans(2);// Seperate nums into two groups by the lowbitfor(constintnum:nums)if(num&lowbit)ans[0]^=num;elseans[1]^=num;returnans;}};
classSolution{publicint[]singleNumber(int[]nums){finalintxors=Arrays.stream(nums).reduce((a,b)->a^b).getAsInt();finalintlowbit=xors&-xors;int[]ans=newint[2];// Seperate nums into two groups by the lowbitfor(finalintnum:nums)if((num&lowbit)>0)ans[0]^=num;elseans[1]^=num;returnans;}}
classSolution:defsingleNumber(self,nums:List[int])->List[int]:xors=functools.reduce(operator.xor,nums)lowbit=xors&-xorsans=[0,0]# Seperate nums into two groups by the lowbitfornuminnums:ifnum&lowbit:ans[0]^=numelse:ans[1]^=numreturnans