您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 1浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

136. 只出现一次的数字

宝哥大数据 发布时间:2019-10-27 09:11:13 ,浏览量:1

一、136. 只出现一次的数字 题目描述

在这里插入图片描述

1、哈希表
class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        dicts = {}
        for i in nums:
            if i in dicts:
                dicts[i] -= 1
            else:
                dicts[i] = 1
        for i in dicts.keys():
            if dicts[i] == 1:
                return i
        
2、数学: 2∗(a+b+c)−(a+a+b+b+c)=c
class Solution(object):
    def singleNumber(self, nums):
        return 2 * sum(set(nums)) - sum(nums)

在这里插入图片描述

3、位操作

在这里插入图片描述

class Solution(object):
    def singleNumber(self, nums):
        a = 0
        for i in nums:
            a ^= i
        return a
二、389. 找不同 2.1、位运算
class Solution:
    def findTheDifference(self, s: str, t: str) -> str:
        ordc = 0
        for c in s:
            ordc ^= ord(c)
        for c in t:
            ordc ^= ord(c)
        return chr(ordc)

2.2、哈希表 2.3、ASCII 和之差 每一个字符都对应一个 ASCII 数字,那么那个不同的数字的 ASCII 码就等于 t 的所有字符码之和 - s 的 ord 函数将单个字符转换为 ASCII 码, chr相反

return chr(sum(map(ord, t)) - sum(map(ord, s)))
三、461. 汉明距离
class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        # 异或
        c = x ^ y
        n = 0
        ret = 0
        while n >= 1
            n += 1
        return ret
四、476. 数字的补数

在这里插入图片描述

class Solution:
    def findComplement(self, num: int) -> int:
        # 原数 + 补数 = 位最大数
        # 原数 ^ 补数 = 位最大数
        tmp = num
        MASK = 1
        while tmp != 0:
            tmp >>= 1
            MASK             
关注
打赏
1587549273
查看更多评论
0.0376s