问题分析

返回首页

返回算法分类分析

第一题 Single Number

Given an array of integers, every element appears twice except for one. Find that single one.

解法

注意set的操作

class Solution(object):

def singleNumber(self, nums):

    """

    :type nums: List[int]

    :rtype: int

    """

    pool = set()

    for i in nums:

        if i in pool:

            pool.remove(i)

        else:

            pool.add(i)

    return pool.pop()

第二题 Single Number II

Given an array of integers, every element appears three times except for one. Find that single one.

解法

注意dict的操作

class Solution(object):

def singleNumber(self, nums):

    """

    :type nums: List[int]

    :rtype: int

    """

    pool = dict()

    for i in nums:

        if i in pool:

            pool[i] += 1

            if pool[i] == 3:

                del pool[i]

        else:

            pool[i] = 1



    return pool.keys()[0]