給出一列互不相同的數,每次比較前兩個,把較小的那個放入數列末尾,較大的數視為勝利,執行這樣的操作直到某個數勝了k次,輸出該數。只要模擬完整個隊列走完一遍或者某個數已達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