LeetCode題解(1535):找出陣列遊戲的贏家(Python)

長行發表於2020-11-08

題目:原題連結(中等)

標籤:數學

解法時間複雜度空間複雜度執行用時
Ans 1 (Python) O ( N ) O(N) O(N) O ( N ) O(N) O(N)104ms (77%)
Ans 2 (Python)
Ans 3 (Python)

解法一(情景模擬):

class Solution:
    def getWinner(self, arr: List[int], k: int) -> int:
        size = len(arr)

        # 處理長度超過總長的情況
        if k >= size:
            return max(arr)

        now = arr[0]
        win = 0
        idx = 1

        while win < k:
            if arr[idx] > now:
                now = arr[idx]
                win = 1
            else:
                win += 1

            idx = (idx + 1) % size

        return now

相關文章