Re: [闲聊] 每日LeetCode

楼主: Rushia (みけねこ的鼻屎)   2023-11-05 14:14:21
※ 引述《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:
作者: SecondRun (雨夜琴声)   2023-11-05 14:32:00
是不是大于阵列长-1就可以直接传max了大于等于阵列长-1
楼主: Rushia (みけねこ的鼻屎)   2023-11-05 14:38:00
是没错 这样写是只是比较懒 反正时间复杂度没怎么差

Links booklink

Contact Us: admin [ a t ] ucptt.com