发布时间:2026/9/1 0:50:47
算法题剖析:找出游戏的获胜者(三) 接上文我们来讲讲第二种解决方案方法二数学 递归思路和算法以下用 f(n,k) 表示 n 名小伙伴做游戏每一轮离开圈子的小伙伴的计数为 k 时的获胜者编号。当 n1 时圈子中只有一名小伙伴该小伙伴即为获胜者因此 f(1,k)1。当 n1 时将有一名小伙伴离开圈子圈子中剩下 n−1 名小伙伴。圈子中的第 k 名小伙伴离开圈子k 满足 1 ≤ k≤ n 且 k - k 是 n 的倍数。由于 1≤k′≤n因此 0≤k′−1≤n−1。又由于 k−k′ 是 n 的倍数等价于 (k-1)-(k-1)是 n 的倍数因此 k′−1(k−1)modnk′(k−1)modn1。当圈子中剩下 n−1 名小伙伴时可以递归地计算 f(n−1,k)得到剩下的 n−1 名小伙伴中的获胜者。令 xf(n−1,k)。由于在第 k 名小伙伴离开圈子之后圈子中剩下的 n−1 名小伙伴从第 k1名小伙伴开始计数获胜者编号是从第 k1名小伙伴开始的第 x 名小伙伴因此当圈子中有 n 名小伙伴时获胜者编号是 f(n,k)(k′modnx−1)modn1(kx−1)modn1。将 xf(n−1,k) 代入上述关系可得f(n,k)(kf(n−1,k)−1)modn1。代码Python3class Solution: def findTheWinner(self, n: int, k: int) - int: return 1 if n 1 else (k self.findTheWinner(n - 1, k) - 1) % n 1Javaclass Solution { public int findTheWinner(int n, int k) { if (n 1) { return 1; } return (k findTheWinner(n - 1, k) - 1) % n 1; } }C#public class Solution { public int FindTheWinner(int n, int k) { if (n 1) { return 1; } return (k FindTheWinner(n - 1, k) - 1) % n 1; } }Cclass Solution { public: int findTheWinner(int n, int k) { if (n 1) { return 1; } return (k findTheWinner(n - 1, k) - 1) % n 1; } };复杂度分析时间复杂度O(n)其中 n 是做游戏的小伙伴数量。需要计算的值有 n 个每个值的计算时间都是 O(1)。空间复杂度O(n)其中 n 是做游戏的小伙伴数量。空间复杂度主要取决于递归调用栈的深度为 O(n) 层。

相关新闻

2026/8/25 9:20:23

看懂大模型提速核心,通俗拆解KV Cache工作原理

用过ChatGPT、文心一言这类大语言模型的朋友,应该都有过直观体验,输入问题后模型会逐字输出答案,流畅度很高,但很少有人知道,模型每输出一个字,背后都在进行海量计算。很多人疑惑,为什么短文本回…

2026/8/31 2:03:33

IR2130 故障保护电路设计:过流检测与22mΩ采样电阻参数详解

IR2130 过流保护电路深度设计:22mΩ采样电阻的工程实践1. 过流保护机制的核心设计逻辑IR2130芯片内置的过流保护功能是电力电子系统可靠运行的关键保障。当ITRIP引脚电压超过0.5V阈值时,芯片会在400ns内快速关断所有输出通道,并通过FAULT引脚…

2026/8/29 11:57:34

AI辅助开发中的代码质量保障与工程实践指南

在数字化转型浪潮席卷各行各业的今天,人工智能(AI)技术已成为提升效率、优化决策的重要工具。然而,在实际开发与应用过程中,过度依赖AI输出而缺乏批判性思考,往往会导致项目陷入“垃圾进,垃圾出…

2026/9/1 0:50:46

别再踩坑了!B站学Pytorch的正确姿势

在凌晨三点时刻, 终于将这份关于B站学习的避坑指南整理完成了。真心不期望后续之人再耗费大量时间逐一去尝试错误, 于海量教程之中不清楚该如何挑选, 又或者由于基础欠佳而看得糊里糊涂。B站之上有着数量众多的教程, 究竟哪一个才契合你呢? 实际上每一个都存有着自身的优点, 精…

2026/9/1 0:50:46

AI 写代码的空档,你在摸鱼还是充电?

备考认证的同时, 搭建一个自己仅略知一二的智能体, 还要等待那条一直没能自动化的流水线, 就在这三件事当中, 我总是碰到同一段空白: AI 正在编写代码, 而我呢, 究竟在做什么?所以这篇文章,算我替自己找个答案,也顺便听听你们的招。这句话, 是说给那些人…

2026/9/1 0:50:46

基于YOLO的动物识别系统设计与实战全解析

简介:本资源是一套基于YOLO系列模型(含yolov8n.pt、yolov8s.pt及CNN.pth)实现的动物识别完整项目,面向人工智能课程设计与本科毕业设计阶段的学习者,解决图像中多类动物实时检测与可视化标注的实际问题,适用…

2026/9/1 0:50:46

SpringBoot整合MQTT:后端订阅设备数据、解析传感器报文

SpringBoot整合MQTT:后端订阅设备数据、解析传感器报文作者:黒漂技术佬前面几篇文章都是在讲 MQTT 协议本身和硬件端的事情。现在该轮到后端程序员出场了——设备把数据发到了 MQTT Broker,咱们的后端服务怎么把它接住? 这篇就手把…

2026/9/1 0:50:46

前端工程原型如何补齐稳定性边界

前端工程原型如何补齐稳定性边界将 Vue3 响应式系统接入大模型流式 SSE(Server-Sent Events)推送时,若更新频率过高,页面可能出现卡顿。 即使只是持续追加文本,也可能让输入和滚动变慢。是否由响应式更新引起&#xff…

2026/9/1 0:45:45

研发流程自动化

研发流程自动化先确认范围 流程自动化先从构建、测试和发布记录的衔接处开始,不急着把所有决策交给模型。 记录可复查的依据 每个步骤都应声明输入、产物、失败处理和负责人;版本变化时,旧记录只能参考,不能直接复用结论。 用小范…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/31 1:41:28

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…