LintCode领扣 题解:约瑟夫问题

简介: LintCode领扣 题解:约瑟夫问题

n个人按顺序围成一圈(编号为1~n),从第1个人从1开始报数,报到k的人出列,相邻的下个人重新从1开始报数,报到k的人出列,重复这个过程,直到队伍中只有1个人为止,这就是约瑟夫问题。现在给定n和k,你需要返回最后剩下的那个人的编号。

1<=n<=1000, 1<=k<=100
在线评测地址:[LintCode 领扣]:https://www.lintcode.com/problem/joseph-problem/?utm_source=sc-tc-sz)

样例1

输入: n = 5, k = 3
输出: 4
解释:
求解过程:
原队列 :1 2 3 4 5
第一轮: 1 2 4 5 其中 3 出列
第二轮: 2 4 5 其中 1 出列
第三轮: 2 4 其中 5 出列
第四轮: 4 其中 2 出列
样例2

输入: n = 5, m = 1
输出: 5
解释:
第一轮: 2 3 4 5, 其中 1 出列
第二轮: 3 4 5, 其中 2 出列
第三轮: 4 5, 其中 3 出列
第四轮: 5, 其中 4 出列
【题解】

暴力解决。建立一个链表,并在每次迭代中删除一个节点。O(n)时间复杂度。

public class Solution {

/**
 * @param n: an integer
 * @param k: an integer
 * @return: the last person's number
 */
public int josephProblem(int n, int k) {
    List<Integer> list = new LinkedList<>();
    for (int i = 1; i <= n; i++) {
        list.add(i);
    }
    
    int i = 0;
    while (list.size() != 1) {
        i = (i + k - 1) % list.size();
        list.remove(i);    
    }
    return list.get(0);
}

}
更多题解参见九章算法:https://www.jiuzhang.com/solution/joseph-problem/?utm_source=sc-tc-sz

相关文章
|
存储 缓存 Java
面试官:你知道包装类的缓存机制吗?
面试官:你知道包装类的缓存机制吗?
1986 0
|
Web App开发 存储 算法
微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
如何优雅地解决“消息序列号只要保证顺序性而不需要兼顾唯一性”的问题呢?这就是本文所要分享的内容,强烈建议深入理解和阅读。
3911 0
|
1月前
|
前端开发 数据挖掘 API
最新版通义千问(Qwen3.7-Max)功能介绍
通义千问Qwen3.7-Max是面向智能体时代推出的全能旗舰大模型,定位为高复杂度、长周期、多工具协同任务的核心基座,以万亿级MoE混合专家架构、百万Token超长上下文、双模式推理与长程自主执行能力为核心,在编程、办公、复杂推理、智能体协作等领域实现全面突破,综合性能跻身全球第一梯队。本文从技术架构、核心能力、专业场景、接入实战与优化技巧等维度,全面解析Qwen3.7-Max的完整功能体系,帮助开发者与企业快速掌握其核心价值与落地方法。
691 2
|
2月前
|
机器学习/深度学习 存储 人工智能
2026年阿里云服务器活动价格:轻量、经济型、通用算力型、计算型等热门实例活动价格参考
2026年阿里云推出多档位高性价比云服务器特惠活动,覆盖轻量应用、经济型e、通用算力型u1/u2i等全系列规格。新用户可抢轻量应用服务器2核2G仅38元/年,2核4G低至9.9元/月;新老用户同享2核2G 3M带宽经济型e实例99元/年、2核4G 5M带宽通用算力型u1实例199元/年,且续费同价。同时提供从2核2G到24核64G的经济型、通用算力型全规格报价参考,适配个人博客、企业官网、数据分析等不同场景,帮助用户按需选择高性价比算力方案。
|
2月前
|
人工智能 安全 网络安全
Hermes Agent 进阶教程:技能自进化、MoA 模型委员会与多后端部署实战
Hermes Agent 是 Nous Research 开源的自我改进型 AI 智能体(MIT 协议),首创内置学习闭环:自主创建技能、使用中持续优化、跨会话构建用户画像。截至2026年7月2日,GitHub Star 20.7万,v0.18.0版新增 /learn 技能蒸馏、双层记忆治理、MoA模型委员会、/goal 证据化完成判定等六大进阶能力,支持本地/Docker/SSH/Modal 等安全后端部署。(239字)
842 1
|
2月前
|
人工智能 自然语言处理 运维
最新版阿里云百炼 Token Plan 功能介绍
在企业与团队规模化落地AI应用的2026年,多数技术团队、中小企业、数字化部门普遍面临诸多算力管理难题:不同大模型需要单独开通权限、单独结算账单,账目杂乱难以统筹;文本、图像、多模态任务算力计费标准不统一,成本无法精准管控;多人协作场景下算力额度无法共享、权限无法分级分配,造成资源浪费;传统按量计费模式波动大、突发调用容易产生高额账单,不利于企业预算规划。
308 0
|
uml 开发者 安全
软件架构中的层次依赖
在描述大而复杂的软件中,最复杂的抽象层次就是软件架构。因此,在这个抽象层次我们能更好的理解构件组装原理和交互方式。软件架构被认为是软件开发方面的驱动力,他允许指定每层那些方面和模型需要依照架构来设计。早期的架构描述语言 ADL,比较独立,侧重结构抽象层次而忽略行为描述层次、观念层次和元模型层次。
5049 154
|
编解码 前端开发
前端设置页面字体尺寸跟随屏幕大小而进行变化
前端设置页面字体尺寸跟随屏幕大小而进行变化
1318 0
前端设置页面字体尺寸跟随屏幕大小而进行变化
|
文字识别 自然语言处理 算法
基于PaddleOCR的体检报告识别(二)
面对飞速发展互联网医疗时代,医疗信息化建设已经成为医疗行业发展的趋势。经调研,约80%的医学病历是处于非结构化状态的,难以直接被利用而造成了大量医学资源浪费。医疗数据中大量的半结构化与无结构化的文本,医学术语的专业性以及语言表达的多样性为结构化信息抽取带来了很大难度。因此,针对电子病历和报告的信息识别抽取和结构化管理对临床诊断、疾病预防与医学研究具有重要意义。
1849 0
基于PaddleOCR的体检报告识别(二)
|
Android开发
解决as connection refused: connect错误
解决as connection refused: connect错误
2137 0
解决as connection refused: connect错误

热门文章

最新文章