※ 引述《ZooseWu (動物園 公告)》之銘言:
: 1535. Find the Winner of an Array Game
: 給你一個陣列 arr 表示比賽順序
: k 表示勝利次數
: 每次比賽的時候 arr[0] 會跟 arr[1] 比
: 勝利的數字會跑到 arr[0] 而輸的會跑到陣列尾端
: 遊戲會進行到有人連續勝利 k 次後結束
https://leetcode.com/problems/find-the-winner-of-an-array-game/description
思路:
1.如果 k 大於等於陣列長,代表需要贏過所有人,所以直接返回最大元素。
2.否則按照題目的要求,輸的放到最後一個,贏的放第一個,因為要把小元素移到後面
並把後面的元素往前補,這個操作對陣列來說成本很高,所以我們可以改用雙指針,
指針 i 指向第一個元素,指針 j 不斷的往右並取 mod 當作比較的元素。
(題目保證有解)
JavaCode: