程序,寻找在Python中删除重复的整数游戏获胜的举动数

假设两个朋友Amal和Bimal正在玩一个游戏,游戏中列出了一些叫做nums的数字。在此游戏中,阿马尔一口气选择了三个数字。Bimal删除其中之一,然后Amal删除其中之一。该列表以奇数个元素开始。在这里,Amla希望最小化使列表不包含重复元素所需的匝数,Bimal希望最大化匝数。如果Amal和Bimal表现最佳,我们必须找出该游戏需要转多少圈。

因此,如果输入像nums = [1,1,2,3,3,3,4],那么输出将为2,如果Amal选择[1,1,3],则Bimal会删除3以最大化依次,数组为[1、1、2、3、3、4],Amal删除1,因此数组为[1,2,3,3,4],然后在下一回合中Amal选择[3,3, 4],则Bimal将删除4以使转数最大化。因此,Amal可以删除3,并且数组将为[1,2,3],没有重复的元素。

为了解决这个问题,我们将遵循以下步骤-

重复:= 0

对于范围为1到nums的i

   如果nums [i]与nums [i-1]相同,则

      重复:=重复+ 1

(重复数+ 1)/ 2的返回商

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

示例

class Solution:
   def solve(self, nums):
      repeats = 0
      for i in range(1, len(nums)):
         if nums[i] == nums[i-1]:
            repeats += 1
      return (repeats + 1) // 2
ob = Solution()nums = [1, 1, 2, 3, 3, 3, 4]
print(ob.solve(nums))

输入值

[1, 1, 2, 3, 3, 3, 4]

输出结果

2
猜你喜欢