《剑指Offer》刷题之数组中重复的数字

《剑指Offer》刷题之数组中重复的数字

我不知道将去向何方,但我已在路上!
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 !
  • 题目
    在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是第一个重复的数字2。没有重复的数字返回-1。
  • 示例
示例 1 :
输入:[2,3,1,0,2,5,3]
返回值:2
  • 代码1:
class Solution:
    def duplicate(self , numbers ):
        temp = 0
        d = {
    
    }
        for i in range(len(numbers)):
            d[numbers[i]] = d.get(numbers[i],0) + 1
            if d[numbers[i]] == 2:
                return numbers[i]
        return -1
  • 算法说明:
    建立字典,逐个遍历数组中的元素,将元素的个数存入字典,当元素的个数超过2的时候,返回当前元素。

猜你喜欢

转载自blog.csdn.net/qq_34331113/article/details/114937152