位操作系列2-leetcode136(c++/python)
Posted depth-perception
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作系列2-leetcode136(c++/python)相关的知识,希望对你有一定的参考价值。
题目
思路
这道题可以使用异或操作!
啥叫异或?(图片来源2)
异或操作有以下特点
- 任何数与0异或结果为其自身: a^0=a
- 任何数与自己异或,结果为0: a^a=0
- 异或满足交换律和结合律: aba=(aa)b=b
这道题,只有1个数出现了1次,其余都出现了2次,根据上述特点,可以高效求解。
题解
C++:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ans=0;
for (auto i :nums)
{
ans^=i;
}
return ans;
}
};
Python:
from functools import *
class Solution(object):
def singleNumber(self, nums):
return reduce(lambda x,y:x^y,nums)
参考
1.https://leetcode-cn.com/problems/single-number/
2.https://mp.weixin.qq.com/s/YasCeiVzUlS-pMBa0nUpsg
以上是关于位操作系列2-leetcode136(c++/python)的主要内容,如果未能解决你的问题,请参考以下文章
136.137.260. Single Number && 位运算
leadcode的Hot100系列--136. 只出现一次的数字
普冉PY32系列 PY32F0系列32位Cortex M0+ MCU简介