使用 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