力扣1823.找出游戏的获胜者

2022-05-04 的每日一题

题目描述

https://leetcode-cn.com/problems/find-the-winner-of-the-circular-game/

思路

有n个小朋友的话,最终的目标是淘汰掉n-1个小朋友。采用list数据结构做,然后每次删除一个小朋友,剩下的最后一个就是胜利的小朋友。
算是比较暴力的解法了

代码

class Solution {
    public int findTheWinner(int n, int k) {
        int outCount=0;
        List<Integer> list = new ArrayList<>();
        for(int i=1;i<=n;i++){
            list.add(i);
        }
        int start=0;//开始位置idx
        while(outCount<n-1){
            int idx=(start+k-1)%list.size();
            list.remove(idx);
            start=idx;
            outCount+=1;
        }
        return list.get(0);
    }
}
posted @ 2022-05-04 15:03  ShaunY  阅读(30)  评论(0编辑  收藏  举报