第七天 Single Number

作者: 业余马拉松选手 | 来源:发表于2018-08-26 23:50 被阅读3次

哈哈,已经坚持了7天了,按照目前的题目700+来看,已经走完了1%
慢慢来,不着急。
不过这个周末的聚会安排的有点多,没有时间来把这周的题目完全总结一下,哎
好,先把今天的题目做完吧:

https://leetcode-cn.com/problems/single-number/description/

在一个数组中,除了一个数字出现了一次,剩下的都出现了两次。要求线性的时间复杂度,同时不开辟新的空间。
那么也就断掉了排序后前后比较和用一个HashMap保存遍历结果的方法。
那么其实这道题就有点讨巧了,是利用位运算的异或来进行。因为根据异或的真值表,可以得知两个数字如果相等,那么他们的异或结果为0,如果把数组所有的元素都全部“异或”起来,那么这样剩下的为1的数字就是我们需要的数字咯

这个地方想明白了,同时在我们日常工作中不太常用到的异或运算也算熟悉了下,其实在刷题中,位运算的使用还是比较多的。

最终AC的代码如下:

class Solution:
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ret = 0
        for i in nums:
            ret ^= i
        return ret

相关文章

  • 一篇文章搞懂面试中leetcode位操作算法题

    Single Number落单的数 落单的数 IISingle Number II Single Number I...

  • single number

    题目描述 给定一个整数数组,除了一个元素外,每个元素都会出现两次。找到那一个出现一次的元素。注意:时间复杂度O(n...

  • Single number

    用异或

  • Single Number

    题目要求找出在算法的时间复杂度为线性时间,且不占据额外的内存 下面讲解算法:该算法主要用到了位运算中的异或运算^,...

  • Single Number

    Single Number 今天是一道有关位运算的题目,来自LeetCode(#136),难度为Medium,Ac...

  • Single Number

    Problem Given an array of integers, every element appears...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    按位亦或可求解,复杂度为O(n)

  • Single Number

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single...

网友评论

    本文标题:第七天 Single Number

    本文链接:https://www.haomeiwen.com/subject/uwbaiftx.html