Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาผู้ชนะเกม Array Game ด้วย Python

เกม: เปรียบเทียบ arr[0] กับ arr[1] ค่ามากกว่าชนะอยู่ index 0 ค่าน้อยกว่าไปท้าย array ทำซ้ำจนกว่าจะมีค่าใดชนะ k รอบติดกัน เนื่องจากค่ามากที่สุดของ array จะชนะทุกค่าอื่นเมื่อมันไปอยู่ index 0 คำตอบคือ max(arr) ถ้า k >= n-1 มิฉะนั้น simulate จนกว่าจะได้ k consecutive wins

ขั้นตอนการทำงาน

  1. prev = arr[0], count = 0
  2. วน i=1..n-1: ถ้า prev > arr[i]: count++ มิฉะนั้น prev = arr[i], count = 1
  3. ถ้า count == k: return prev
  4. จบลูป: return 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))  # Output: 6

อินพุต/เอาต์พุต

Input: [1,5,6,3,4,2], k=3
Output: 6

Round 1: 5 wins, Round 2: 6 wins, Round 3: 6 wins, Round 4: 6 wins (3 consecutive)