83. 落单的数 II

83. 落单的数 II

中文English

给出3*n + 1 个非负整数,除其中一个数字之外其他每个数字均出现三次,找到这个数字。

样例

样例 1:

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

样例 2:

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

挑战

一次遍历,常数级的额外空间复杂度

class Solution:
    """
    @param A: An integer array
    @return: An integer
    """
    def singleNumberII(self, A):
        # write your code here
        d = {}
        for i in A:
            d[i] = d.get(i,0) + 1
        for k,v in d.items():
            if v < 3:
                return k

 

84. 落单的数 III

中文English

给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。

样例

样例 1:
	输入:  [1,2,2,3,4,4,5,3]
	输出:  [1,5]

样例 2:
	输入: [1,1,2,3,4,4]
	输出:  [2,3]
	

挑战

O(n)时间复杂度,O(1)的额外空间复杂度 

输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param A: An integer array
    @return: An integer array
    """
    def singleNumberIII(self, A):
        # write your code here
        res = []
        d = {}
        for i in A:
            d[i] = d.get(i,0) + 1
        for k,v in d.items():
            if v < 2:
                res.append(k)
        return res

 

posted @ 2020-05-05 01:41  风不再来  阅读(196)  评论(0编辑  收藏  举报