給出一列互不相同的數(shù),每次比較前兩個,把較小的那個放入數(shù)列末尾,較大的數(shù)視為勝利,執(zhí)行這樣的操作直到某個數(shù)勝了k次,輸出該數(shù)。只要模擬完整個隊列走完一遍或者某個數(shù)已達(dá)k次。
#1535
#Runtime: 491 ms (Beats 40%)
#Memory: 23.8 MB (Beats 13.33%)
class Solution(object):
def getWinner(self, arr, k):
"""
:type arr: List[int]
:type k: int
:rtype: int
"""
cnt = defaultdict(int)
n = len(arr)
mx = arr[0]
for i in xrange(1, n):
mx = max(mx, arr[i])
cnt[mx] += 1
if cnt[mx] >= k:
return mx
return mx