使用Python查找数组游戏的获胜者的程序

使用Python查找数组游戏的获胜者的程序

假设我们有一个名为arr的数组,这个数组包含唯一的元素,我们还有另一个值k。现在考虑一个游戏,我们取数组的前两个元素。在每一轮中,我们将arr[0]与arr[1]进行比较,较大的值获胜并保留在位置0上,较小的值移动到数组的末尾。当一个值连续获胜k次时,游戏将结束。我们必须从数组中找出获胜者。

因此,如果输入是arr = [1,5,6,3,4,2],k = 3,那么输出将是6,因为

  • 第一轮,arr = [1,5,6,3,4,2],赢家为5,5的胜利次数为1

  • 第二轮,arr = [5,6,3,4,2,1],赢家为6,6的胜利次数为1

  • 第三轮,arr = [6,3,4,2,1,5],赢家为6,6的胜利次数为2

  • 第四轮,arr = [6,4,2,1,5,3],赢家为6,6的胜利次数为3

因此,获胜者是6,因为它赢了三次(k = 3)

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

  • l := arr的大小

  • prev := arr[0]

  • count := 0

  • 对于i从1到l-1,执行以下操作

    • 如果prev > arr[i],则
      • count := count + 1
    • 否则,
      • prev := arr[i]

      • count := 1

    • 如果count与k相同,则

      • 返回prev
  • 返回prev

让我们看以下实现以获得更好的理解−

示例

def solve(arr, k):
   l = len(arr)
   prev = arr[0]
   count = 0
   for i in range(1, l):
      if prev > arr[i]:
         count+=1
      else:
         prev = arr[i]
         count = 1
      if count == k:
         return prev
   return prev
arr = [1,5,6,3,4,2]
k = 3
print(solve(arr, k))

输入

[1,5,6,3,4,2], 3

输出

6

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程