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

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

因此,如果输入类似于 arr = [1,5,6,3,4,2],并且 k = 3,那么输出将为 6,因为

  • 第 1 轮,arr = [1,5,6,3,4,2],第 5 名获胜者,第 5 名获胜数为 1

  • 第 2 轮,arr = [5,6,3,4,2,1],第 6 名获胜者,第 6 名获胜计数为 1

  • 第 3 轮,arr = [6,3,4,2,1,5],第 6 名获胜者,第 6 名获胜计数为 2

  • 第 3 轮,arr = [6,4,2,1,5,3],第 6 名获胜者,第 6 名获胜数为 3

所以赢家是 6,因为它赢了 3 次 (k = 3)

为了解决这个问题,我们将按照以下步骤操作 -

  • l := arr的大小

  • 上一个 := arr[0]

  • 计数:= 0

  • 对于 1 到 l - 1 范围内的 i,请执行

    • 返回上一页

    • 上一个 := arr[i]

    • 计数:= 1

    • 计数 := 计数 + 1

    • 如果 prev > arr[i],则

    • 否则,

    • 如果计数与 k 相同,则

    • 返回上一页

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

    示例

    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 查找数组游戏获胜者的程序 的全部内容, 来源链接: utcz.com/z/351664.html

    回到顶部