数据结构(八十九)
学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 只出现一次的数字 ——
1.题目描述
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例:
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
2.代码
python
class Solution:
def singleNumber(self, nums: List[int]) -> int:
nums.sort()
cur = 1
while cur <= len(nums)-1:
if nums[cur] == nums[cur-1]:
cur += 2
else:
return nums[cur-1]
else:
return nums[cur-1]
思路:由于数组非空,所以一定存在且只存在一个只出现一次的元素。那么首先对数组排序,则只有一个元素与相邻元素不同,依次比较相邻元素,相等则位置递增2,不等则前一个元素即为所求。