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

640?wx_fmt=png

? 温故而知新

? 今日挑战

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?

示例 1:

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

示例 2:

输入: [0,1,0,1,0,1,99]输出: 99

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

640?wx_fmt=other

图来自网络

因为这道题目规定了不要用到额外的空间,也就是必须要在O(N)的空间复杂度内完成,这里用到了一个比较机智的办法。

1 )假设 nums = [a,a,a,b,c,c,c]

2 )3倍的元素之和: 3(a+b+c)

3 )原数组之和:3a+b+3c

4 )相减:3(a+b+c)-3a+b+3c=2b

5 )除以2:就是b

Python实现:

# 只出现一次的数字 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())

? 配图角色背景介绍

本名布鲁斯·班纳(Bruce Banner)是出现在惊奇漫画出版物中的反英雄虚构人物。浩克由斯坦·李(Stan Lee)与杰克·科比(Jack Kirby)所创造,首次出现于《不可思议的浩克》(The Incredible Hulk)第一部第一期(1962年二月);从此成为惊奇漫画旗下最受欢迎的人物之一。物理学家罗柏特布鲁斯·班纳(Robert Bruce Banner)博士在意外受自己制造出的伽玛炸弹(Gamma Bomb)放射线污染后变成了名为浩克的愤怒怪物。班纳与浩克两个身分时常造成毁灭性的破坏,因此常成为警方与有关单位追捕的对象。译名也常称浩克为绿巨人,但此译名与实际有一定程度的误差,虽说浩克的皮肤颜色最常见的是绿色,然而在浩克的故事历史中皮肤时常改变颜色,不同颜色的肤色代表了此角色不同的人格,但都是指涉同一个人物。在过去四十年中,浩克几乎与惊奇世界中每一个英雄与反派交战过。浩克曾出现在多部动画影集,一部电视影集《The Incredible Hulk》,以及两部电影:2003年台湾导演李安执导的《绿巨人浩克》(The Hulk),由艾瑞克·巴纳饰演班纳,以及最新的《无敌浩克》(The Incredible Hulk),由路易斯·拉提耶(Louis Leterrier)执导,爱德华·诺顿饰演班纳,已于2008年六月上映 。

超人的力量,速度,精力,耐力,重生治愈能力,可看见灵体,放射线吸收能力,变身,高心灵控制防御力,部份化身具有天才程度智力。力量:其实他的力量会随着愤怒的提升而无限提升。至少有100吨的力量,曾经挺起一个一百五十亿吨的岩石。速度:浩克在全速奔跑时速度是接近光速,甚至是超过光速。耐力:他的耐力近乎没有极限,重生能力超过金刚狼。几种变身状态下的能力也有不同。

  • 野蛮浩克:此版本的浩克以被攻击后因暴怒而毁灭掉都市或乡下建筑闻名,经常对敌人喊着“浩克出击!”同时这个形态也是曾经被认定为最强形态。按照官方的说法,他的力量近乎无限,只要绿巨人越愤怒,就会变得越强大。

  • 失心浩克:此一版本的浩克与其它版本外型迥异,失心浩克出自于班纳对自己分身最深层的恐惧。梦魇不断的增加自己对班纳的影响力,让此一黑暗的分身逐渐成形浮现。当班纳终于崩溃时,失心浩克成为了一个独立的人格,挣脱了班纳的控制。最后在班纳潜意识所创造出来的三个生物的帮助下,失心浩克获得了说话的能力,且行为逐渐较不残暴。从此之后这个人格就没有在出现过,很可能已经不再是班纳多重人格的一部份。

  • 灰浩克:灰浩克虽是体型最小的浩克版本,他仍然比常人高大许多。基本力量是所有主要浩克版本中最低的一个,不过他的的力量等级可随愤怒而增加,但比起其它版本的浩克,增加的幅度缓慢许多。虽然他的力量较低,但灰浩克会利用对手以为面对的是野蛮浩克这点,而藉机智与战略取得优势。

  • 合体浩克:合体浩克有着班纳、野蛮浩克,以及灰浩克的个性特质(并拥有班纳的智力、灰浩克的狡猾,以及野蛮浩克的体型与力量),但教授并没有这些特质。合体浩克是超级英雄团体神战队(Pantheon)的成员与队长。虽然他有着极度壮硕的身体,但合体浩克却有着一张接近布鲁斯·班纳的正常脸孔,笔直的身形让他成为最高,且最不像野人的一个浩克版本。

  • 恶魔浩克:恶魔浩克是浩克的敌人,威胁将逃出班纳内心的束缚,并毁灭这个不断折磨虐待他的世界。后来恶魔浩克被解释为由梦魇创造出来的幻想。

  • 绿殇:绿殇浩克的愤怒是最集中的。此浩克的耐力极高,可以承受黑闪电(Black Bolt)的音波,但过去的野蛮浩克则不行。依据蜘蛛侠的说法,绿殇浩克是他所知第二强大的超级英雄,但又在随后剧情他就把号称第一强大的英雄哨兵打倒。绿殇浩克受过的训练包括厚剑、长矛以及战盾,且是有为的领导与战略家。此时的浩克是布鲁斯·班纳的人格与智慧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值