一道算法题,取出数组中出现次数为奇数的元素 发表于 2016-03-08 | 分类于 技术宅 | 0 条评论 今天遇到一个问题,大致是这样: 一个数组,L = [1, 2, 3, 4, 3, 2, 1, 2] 找出其中出现了奇数次的元素,我当时是这样想的: result = [] for x in L: tmp_sum = 0 for y in L: if x == y: tmp_sum += 1 if tmp_sum % 2 == 1 and x not in result: result.append(x) 但是这样做性能很不好,循环了两次,有更好的算法: tmp = {} for x in L: if x in tmp: del tmp[x] else: tmp[x] = 1 第一种时间复杂度是O(n2),第二种是O(n)