【LeetCode 算法】Find the Losers of the Circular Game 找出转圈游戏输家

news/2024/6/16 19:49:13 标签: 算法, leetcode, 游戏

文章目录

  • Find the Losers of the Circular Game 找出转圈游戏输家

Find the Losers of the Circular Game 找出转圈游戏输家

问题描述:

n 个朋友在玩游戏。这些朋友坐成一个圈,按 顺时针方向1n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i + 1) 个朋友的位置(1 <= i < n),而从第 n 个朋友的位置开始顺时针移动 1 步会回到第 1 个朋友的位置。

游戏规则如下:

1 个朋友接球。

  • 接着,第 1 个朋友将球传给距离他顺时针方向 k 步的朋友。
  • 然后,接球的朋友应该把球传给距离他顺时针方向 2 * k 步的朋友。
  • 接着,接球的朋友应该把球传给距离他顺时针方向 3 * k 步的朋友,以此类推。

换句话说,在第 i 轮中持有球的那位朋友需要将球传递给距离他顺时针方向 i * k 步的朋友。

当某个朋友第 2 次接到球时,游戏结束。

在整场游戏中没有接到过球的朋友是 输家

给你参与游戏的朋友数量 n 和一个整数 k ,请按升序排列返回包含所有输家编号的数组 answer 作为答案。

1 < = k < = n < = 50 1 <= k <= n <= 50 1<=k<=n<=50

分析

这个问题是一次周赛的Q1。

这样的问题很讨厌,因为它太简单了,直接模拟就可以了,但是大部分的人潜意识中,会被导向约瑟夫环

没错,当时这个问题花了近半小时,虽然AC,但是代码太挫了。

可能是周赛的影响,今天的每日就很流畅。这个模拟需要注意的是它的No.是从1开始到n。而且是一个环,所以取模是必然的。

这时候就需要一个长度n的标识数组,来记录是否访问过。
所以编号为 i i i的人,就会处于数组 i − 1 i-1 i1的位置上。
那么下一个可以被访问的人, j = ( i + r ∗ k ) j = (i+r*k)%n j=(i+rk), i i i j j j都是索引
在不停的访问中,一定会终止,即某个位置第二次被访问到。
此时把所有未被标记的位置从小到大的记录到结果中.

目前这个问题似乎,没有纯数学的思路,只能模拟

代码

模拟

public int[] circularGameLosers(int n, int k) {
        boolean[] mark = new boolean[n];
        int r = 0;//圈数
        for(int i = 0;!mark[i];i =(i+r*k)%n){
            mark[i] = true;
            r++;
        }
        int[] ans = new int[n-r];
        for(int i=0,j=0;i<n;i++){
            if(!mark[i]) ans[j++]= i+1;
        }
        return ans;
    }

时间复杂度 O ( N ) O(N ) O(N)

空间复杂度 O ( N ) O(N) O(N)

Tag

Array

Hash


http://www.niftyadmin.cn/n/4945493.html

相关文章

【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现

思考 在解析请求之前我们要思考一个问题&#xff0c;我们解析的是其中的哪些内容&#xff1f; 对于最基本的实现&#xff0c;当然是请求类型&#xff0c;请求的url以及请求参数&#xff0c;我们可以根据请求的类型作出对应的处理&#xff0c;通过url在我们的mapstore中找到se…

005-Spring 扩展点 :PostProcess

目录 Spring 扩展点 &#xff1a;PostProcess介绍PostProcess大纲文字明细使用方法示例Autowired 功能实现Resource 功能实现 后记 Spring 扩展点 &#xff1a;PostProcess 介绍 Spring 核心做的事情其实很简单就是&#xff1a;控制反转和依赖注入 也就是把 Class 解析为 Bea…

C语言好题解析(二)

目录 递归类型例题1例题2例题3例题4例题5例题6 递归类型 例题1 根据下面递归函数&#xff1a;调用函数Fun(2)&#xff0c;返回值是多少&#xff08; &#xff09;int Fun(int n) {if (n 5)return 2;elsereturn 2 * Fun(n 1); } A.2 B.4 C.8 D.16【答案】 D 【分析】 …

AutoSAR配置与实践(配置篇)RTE对Ports的支持 – C/S原理进阶

传送门 点击返回 ->AUTOSAR配置与实践总目录 AutoSAR配置与实践(配置篇)RTE对Ports的支持 – C/S原理进阶 一、 Polling和Waiting类型的 C/S接口执行流程详解1.1 Polling流程详解1.2 Waiting流程详解二、存储请求信息的数据形式2.1 Polling 类型接口执行状态存储形式2.2 W…

《机器学习系统:设计与实现》读书笔记一

最近几年一直在做算法工程的工作&#xff0c;对机器学习系统有所涉猎&#xff0c;也很感兴趣。近期发现一本开源书籍《机器学习系统&#xff1a;设计与实现》。去图书馆找了它的纸质版&#xff0c;发现内容不尽相同。在这里结合两者做一个读书笔记。本文是第一篇&#xff0c;主…

从零实战SLAM-第十课(回环检测与建图)(完)

在七月算法报的班&#xff0c;老师讲的蛮好。好记性不如烂笔头&#xff0c;关键内容还是记录一下吧&#xff0c;课程入口&#xff0c;感兴趣的同学可以学习一下。 --------------------------------------------------------------------------------------------------------…

从入门到精通Python隧道代理的使用与优化

哈喽&#xff0c;Python爬虫小伙伴们&#xff01;今天我们来聊聊如何从入门到精通地使用和优化Python隧道代理&#xff0c;让我们的爬虫程序更加稳定、高效&#xff01;今天我们将对使用和优化进行一个简单的梳理&#xff0c;并且会提供相应的代码示例。 1. 什么是隧道代理&…

广联达OA前台sql注入+后台文件上传漏洞复现分析

文章目录 前言资产特征前台sql注入后台文件上传解决办法 前言 最近看到广联达OA的前端sql注入和后端文件上传漏洞联动的poc 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业…