码迷,mamicode.com
首页 > 编程语言 > 详细

位操作系列2-leetcode136(c++/python)

时间:2020-03-30 19:20:48      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:obj   solution   single   ber   auto   def   根据   etc   mba   

题目

技术图片

思路

这道题可以使用异或操作!

啥叫异或?(图片来源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)

标签:obj   solution   single   ber   auto   def   根据   etc   mba   

原文地址:https://www.cnblogs.com/depth-perception/p/12600404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!