在Python中寻找数组删除游戏的获胜者

在Python中寻找数组删除游戏的获胜者

假设Amal和Bimal正在玩一个游戏,他们有一个带有一些数字的数组A。游戏规则如下:

  • Bimal始终会开始游戏
  • 每次轮到一个玩家删除数组中的最大元素,并且删除元素右侧的所有其他元素。
  • 他们交替进行
  • 删除所有剩余元素的玩家将赢得比赛。

因此,如果输入类似于nums=[5,2,6,3,4],那么输出将为Amal,因为首先Bimal将删除[6,3,4],因此数组将变为[5,2],然后Amal将删除所有内容,因此他将成为获胜者。

要解决这个问题,我们将遵循以下步骤:

  • maximum := -1
  • count := 0
  • 对于nums中的每个a,执行以下操作
    • 如果a > maximum非零,则
      • count := count + 1
      • maximum := a
  • 如果count mod 2与0相同,则
    • 返回“Amal”
  • 返回“Bimal”

示例

让我们看一下以下实现,以更好地理解-

def solve(nums):
   maximum = -1
   count = 0
   for a in nums:
      if a > maximum:
         count += 1
         maximum = a
   if count % 2 == 0:
      return "Amal"
   return "Bimal"

nums=[5,2,6,3,4]
print(solve(nums))

输入

[5,2,6,3,4]

输出

Amal

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程