一、136. 只出现一次的数字
题目描述
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)
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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?