LEETCODE | PYTHON | 136 | 只出现一次的数字
1. 题目
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/single-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 代码
class Solution:
def singleNumber(self, nums: List[int]) -> int:
#初始化
nums.sort()
l = len(nums)
#判断首位数是否符合要求
if l == 1:
return nums[0]
if nums[0]!=nums[1]:
return nums[0]
#判断末位数是否符合要求
if nums[l-1]!=nums[l-2]:
return nums[-1]
#遍历判断其余位置
for i in range(1,l-1):
if nums[i]!=nums[i-1] and nums[i]!=nums[i+1]:
return nums[i]
3. 相关知识
(1) 对数组nums进行排序
(2) 若nums[i]与nums[i-1]或nums[i+1]都不想等则为所需要的结果
(3) 首尾数值进行单独判断