概述
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1] 输出: 1
示例 2:
输入: [4,1,2,1,2] 输出: 4
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time: 2018/7/19
# @Author: xfLi
# The file...
#字典方法
def singleNumber(nums):
"""
:type nums: List[int]
:rtype: int
"""
single_number = {}
for i in range(len(nums)):
if nums[i] not in single_number.keys():
single_number[nums[i]] = i
else:
single_number.pop(nums[i])
return list(single_number.keys())[0]
#计数方法
def singleNumber2(nums):
"""
:type nums: List[int]
:rtype: int
"""
for i in nums:
if nums.count(i) == 1:
return i
#异或方法(最优)
def singleNumber3(nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for i in nums:
res ^= i
return res
if __name__ == '__main__':
nums = [3,1,2,1,2]
result = singleNumber3(nums)
print(result)
最后
以上就是眯眯眼小甜瓜为你收集整理的【LeetCode】只出现一次的数字的全部内容,希望文章能够帮你解决【LeetCode】只出现一次的数字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复