刷leetcode,刷到一道很有意思的题,用到了位运算符,记录一哈。
之前的文章
也提到过一次,位运算符是用于二进制位运算符号
比如
A = 0011 1100
B = 0000 1101
A ^ B = 0011 0001
任何数与0异或为任何数: 0 ^ n => n
相同的数异或为0: n ^ n => 0
LeetCode
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
解法:
class Solution {
public int singleNumber(int[] nums) {
int eor = 0;
for (int num : nums) {
eor ^= num;
}
return eor;
}
}
网友评论