136只出现一次的数字

   日期:2024-01-17     浏览:48    评论:0    
from typing import List
class Solution:
# 第一种是我想的办法
def singleNumber(self, nums: List[int]) -> int:
# 首先进行排序
nums.sort()
# 然后判断重复的数字,数组中的数字必定为奇数个,
# 如果循环没有跳出,那么数组的最后一个数字一定为不重复的数字
for index in range(1,len(nums),2):
if nums[index] != nums[index - 1]:
return nums[index -1]
return nums[-1]
# 第二个答案是官方解答
def singleNumber1(self, nums: List[int]) -> int:
# 位运算,任何数和零位运算都为本省
# 位运算,是二进制的异或运算。
# 100 ^ 110 = 10 #这是二进制。
# 这就相当于将数组中的每一个数都分解为二进制。
# 然后将每一位进行异或运算。最后留下来的二进制就是没有重复的。
num = 0
for index in range(len(nums)):
num ^= nums[index]
return num
A = Solution()
print(A.singleNumber1([1,2,2,3,3,4,4]))
print(A.singleNumber1([1,1,2,2,3,3,4,4,5]))
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服