知识点:数组
题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
思路:
使用字典法统计数组中各元素出现的次数,再构建一个列表,如果字典中的 dic[i]=1,则将该 i 添加到列表中,最后返回列表。
详解:(字典法)
方法一:
# -*- coding:utf-8 -*-
class Solution:
# 返回[a,b] 其中a,b是出现一次的两个数字
def FindNumsAppearOnce(self, array):
# write code here
dic={}
for i in array:
if i not in dic:
dic[i]=1
else:
dic[i]+=1
res=[]
for i in array:
if dic[i]==1:
res.append(i)
return res
方法二:
# -*- coding:utf-8 -*-
class Solution:
# 返回[a,b] 其中ab是出现一次的两个数字
def FindNumsAppearOnce(self, array):
# write code here
dic = {}
for i in array:
dic[i] = 1 if i not in dic else dic[i] + 1
res = []
for k,v in dic.items():
if v == 1:
res.append(k)
return res
知识点:
Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。
dict.items()
返回可遍历的(键, 值) 元组数组。
实例:
#!/usr/bin/python
# coding=utf-8
dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}
print "字典值 : %s" % dict.items()
# 遍历字典列表
for key,values in dict.items():
print key,values