寻找列表中只出现一次的字符
出现一次的数字ii
https://www.nowcoder.com/practice/1097ca585245418ea2efd0e8b4d9eb7a?tpId=46&&tqId=29043&rp=1&ru=/ta/classic-code&qru=/ta/classic-code/question-ranking
题目描述:
现在有一个整数类型的数组,数组中只有一个元素只出现一次,其余元素都出现三次。你需要找出只出现一次的元素
注意:
你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?
思路:
我们可以获取列表所有元素分别出现的次数,然后设定限制条件,找到目标元素。因为题目要求,其它元素至少出现三次,所以
当某个元素出现的次数大于1时,本次循环结束,进入下一次循环,若次数为一,则返回该元素。废话不多说,代码如下:
def FindNumber2(A): for k in range(len(A)): if A.count(A[k]) % 2 == 0: continue else: if A.count(A[k]) > 1: continue else: return A[k] print(FindNumber2([2,2,3,2,4,4,8,7,9,7,3,9]))