40.数组中只出现一次的数字

tech2023-05-26  61

文章目录

1.题目2.思路3.代码

1.题目

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

2.思路

解法一:用count方法。 解法二:不用内置count方法。

3.代码

解法一:count()

# -*- coding:utf-8 -*- class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): # write code here res = [] for i in array: if array.count(i) == 1: res.append(i) return res

解法二:不用count()版本

# -*- coding:utf-8 -*- class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): # write code here array_set = list(set(array)) # 去重处理,得到去重后的列表 array_len = len(array_set) b = [0] * array_len # 定义两个新列表,b的索引号和array_set相同,里面装数字出现的次数 c = [] # c里面仅仅装两个出现一次的数字的索引,这个索引同b和array_set对应,因此可以根据索引在array_set数组中找到对应的数字。 for i in array: b[array_set.index(i)] += 1 for index, nums in enumerate(b): if nums == 1: c.append(index) return [array_set[c[0]], array_set[c[1]]]
最新回复(0)