首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【LeetCode16】只出现一次的数字 III

【LeetCode16】只出现一次的数字 III

作者头像
Sam Gor
发布2019-07-24 14:25:10
发布2019-07-24 14:25:10
4390
举报
文章被收录于专栏:SAMshareSAMshare

? 今日挑战

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。

示例 :

输入: [1,2,1,3,2,5]输出: [3,5]

注意:

结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?

先思考一下,后面我会给出一个解题思路~?

图来自网络

这道题和第 15 道题的解题思路是一样的。

1 )初始化一个字典

2 )如果数字已经存在,则从中剔除这个元素

3 )如果数字不存在,则从中新增这个元素

4 )最后返回还存留在字典中的元素,就是结果,转化为list返回即可。

Python实现:

代码语言:javascript
复制
# 只出现一次的数字 III
def singleNumber(nums):
    # 初始化一个字典
    hash_table = {}
    for i in nums:
        try:
            # 如果数字已经存在,则从中剔除这个元素
            hash_table.pop(i)
        except:
            # 如果数字不存在,则从中新增这个元素
            hash_table[i] = 1
    return list(hash_table.keys())

? 配图角色背景介绍

托尔(Thor,古挪威语:Þórr,较常见译名为索尔),日耳曼地区称他多纳尔(Donar),是古北欧神话中负责掌管战争与农业的神。托尔的职责是保护诸神国度的安全与在人间巡视农作,北欧人相传每当雷雨交加时,就是托尔乘坐马车出来巡视,因此称呼托尔为“雷神”。另外,托尔的勇敢善战在诸神与巨人间是非常有名的,托尔的力量相当巨大。在神话中甚至可以独自挑战巨人群,每当诸神被巨人们欺负或者攻击时,只要托尔一站出来立刻就让巨人族知难而退。除了托尔本身力量强大之外,“雷神之锤”更是让托尔所向无敌的宝贵武器,因此与诸神敌对的巨人族们相当畏惧托尔,只要托尔在诸神的一天巨人们几乎不敢对诸神们轻举妄动。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAMshare 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档