Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm người chiến thắng trong trò chơi dàn trận bằng Python

Giả sử chúng ta có một mảng được gọi là arr, mảng này chứa các phần tử duy nhất và chúng ta cũng có một giá trị k khác. Bây giờ hãy xem xét một trò chơi mà chúng ta lấy hai phần tử đầu tiên của mảng. Trong mỗi lượt, chúng ta so sánh arr [0] với arr [1], giá trị lớn hơn sẽ thắng và giữ nguyên ở vị trí 0 và giá trị nhỏ hơn di chuyển về cuối mảng. Trò chơi này sẽ kết thúc khi một giá trị thắng được k vòng liên tiếp. Chúng ta phải tìm ra người chiến thắng trong mảng.

Vì vậy, nếu đầu vào là arr =[1,5,6,3,4,2] và k =3, thì đầu ra sẽ là 6 vì

  • vòng 1, arr =[1,5,6,3,4,2], đội chiến thắng 5, số trận thắng cho 5 là 1

  • vòng 2, arr =[5,6,3,4,2,1], đội thắng 6, số trận thắng cho 6 là 1

  • vòng 3, arr =[6,3,4,2,1,5], đội thắng 6, số trận thắng cho 6 là 2

  • vòng 3, arr =[6,4,2,1,5,3], đội thắng 6, số trận thắng cho 6 là 3

Vì vậy, người chiến thắng là 6 vì nó đã thắng ba lần (k =3)

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • l:=kích thước của arr

  • trước:=arr [0]

  • đếm:=0

  • đối với tôi trong phạm vi từ 1 đến l - 1, hãy thực hiện

    • nếu trước> arr [i], thì

      • count:=count + 1

    • nếu không,

      • trước:=arr [i]

      • đếm:=1

    • nếu số đếm bằng k, thì

      • trả lại trước

  • trả lại trước

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

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

Đầu ra

6