欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

牛客网在线编程专题《剑指offer-面试题40》数组中只出现一次的数字

程序员文章站 2022-03-08 15:52:59
...

我的个人微信公众号:Microstrong

微信公众号ID:MicrostrongAI

微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步!

知乎主页:https://www.zhihu.com/people/MicrostrongAI/activities

Github:https://github.com/Microstrong0305

个人博客:https://blog.csdn.net/program_developer

 题目链接:

https://www.nowcoder.com/practice/e02fdb54d7524710a7d664d082bb7811?tpId=13&tqId=11193&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述:

牛客网在线编程专题《剑指offer-面试题40》数组中只出现一次的数字

 解题思路:

(1)以空间复杂度换时间复杂度

空间复杂度牛客网在线编程专题《剑指offer-面试题40》数组中只出现一次的数字,时间复杂度牛客网在线编程专题《剑指offer-面试题40》数组中只出现一次的数字

已经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()函数,时间复杂度为牛客网在线编程专题《剑指offer-面试题40》数组中只出现一次的数字

# -*- 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