在Python中查找重复编号
假设我们有一个包含n+1整数的数组nums。成员的范围是1到n。证明至少必须有一个重复的号码。假设只有一个重复的数字,我们必须找到该重复的元素。因此,如果数组类似于[1,3,4,2,2],则重复元素将为2。
为了解决这个问题,我们将遵循以下步骤-
a:=nums[0]和b:=nums[0]
而真
一个:=nums[nums[a]]
b:=nums[b]
如果a=b,则破坏
ptr:=nums[0]
而ptr不是b
ptr:=nums[ptr]
b:=nums[b]
返回ptr
让我们看下面的实现以更好地理解-
示例
class Solution(object):
def findDuplicate(self, nums):
hare = nums[0]
tortoise = nums[0]
while True:
hare = nums[nums[hare]]
tortoise = nums[tortoise]
if hare == tortoise:
break
ptr = nums[0]
while ptr!=tortoise:
ptr = nums[ptr]
tortoise = nums[tortoise]
return ptr
ob1 = Solution()print(ob1.findDuplicate([3,1,3,4,2]))输入值
[3,1,3,4,2]
输出结果
3
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短