用python找编号相同的球

Python023

用python找编号相同的球,第1张

详情如下。

假设我们有一个包含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

让我们看下面的实现以更好地理解-

示例

classSolution(object):

deffindDuplicate(self,nums):

hare=nums[0]

tortoise=nums[0]

whileTrue:

hare=nums[nums[hare]]

tortoise=nums[tortoise]

ifhare==tortoise:

break

ptr=nums[0]

whileptr!=tortoise:

ptr=nums[ptr]

tortoise=nums[tortoise]

returnptr

ob1=Solution()print(ob1.findDuplicate([3,1,3,4,2]))

输入值

[3,1,3,4,2]

输出结果

3

需要加载一下math库,math.pi是π,r是球半径。

体积:

4/3 * math.pi * r**3

表面积:

4 * math.pi * r**2