牛客网在线编程专题《剑指offer-面试题40》数组中只出现一次的数字
程序员文章站
2022-03-08 15:52:59
...
我的个人微信公众号:Microstrong
微信公众号ID:MicrostrongAI
微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步!
知乎主页:https://www.zhihu.com/people/MicrostrongAI/activities
题目链接:
题目描述:
解题思路:
(1)以空间复杂度换时间复杂度
空间复杂度,时间复杂度。
已经AC的代码:
# -*- coding:utf-8 -*-
class Solution:
# 返回[a,b] 其中ab是出现一次的两个数字
def FindNumsAppearOnce(self, array):
# write code here
num_dic = {}
result_list = []
for item in array:
if item in num_dic.keys():
num_dic[item] = num_dic[item] + 1
else:
num_dic[item] = 1
for item, count in num_dic.items():
if count == 1:
result_list.append(item)
return result_list
if __name__ == "__main__":
input_array = [2, 4, 3, 6, 3, 2, 5, 5]
sol = Solution()
print(sol.FindNumsAppearOnce(input_array))
(2)利用Python中list.count()函数,时间复杂度为
# -*- coding:utf-8 -*-
class Solution:
# 返回[a,b] 其中ab是出现一次的两个数字
def FindNumsAppearOnce(self, array):
# write code here
result_list = []
for item in array:
count = array.count(item)
if count == 1:
result_list.append(item)
return result_list