美文网首页
《剑指Offer》 数组中重复的数字 Python实现

《剑指Offer》 数组中重复的数字 Python实现

作者: 4v3r9 | 来源:发表于2019-01-10 18:50 被阅读7次

    1 问题描述

    在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。

    2 我的代码

    # -*- coding:utf-8 -*-
    class Solution:
        # 这里要特别注意~找到任意重复的一个值并赋值到duplication[0]
        # 函数返回True/False
        def duplicate(self, numbers, duplication):
            # write code here
            n = len(numbers)
            if not numbers:
                return False
            for ind, ele in enumerate(numbers):
                if ele < 0 or ele >= n:
                    return False
                if ele == ind:
                    continue
                else:
                    if ele != numbers[ele]:
                        temp = ele
                        ele = numbers[ele]
                        numbers[ind] = temp
                    else:
                        duplication[0] = ele
                        return True
            return False
    

    3 运行结果

    • 运行时间:24ms
    • 占用内存:5732k

    相关文章

      网友评论

          本文标题:《剑指Offer》 数组中重复的数字 Python实现

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