※ 引述《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: