leetcode打卡001-约瑟夫问题

news/2024/10/3 17:01:25 标签: leetcode, 算法, 职场和发展, 打卡

约瑟夫问题

其背景故事是关于一组人站成一个圈,从某个人开始报数,每数到特定数字的人将被淘汰出圈,然后从被淘汰人的下一个人重新开始报数,直到最后剩下一个人。问题的目标是确定最后剩下的那个人在最初的位置。

关键词

递归,递归的逻辑
在这里插入图片描述

解释

从0开始给给n个人标记,0,1,2……n-1
n=1时 已经满足题目要求了,只剩下一个人,直接返回下标0
当n>1时 思考一下,下一趟(即递归中的J(n-1,m))喊1的人在上一趟(即递归中的J(n,m))中的位置是 (J(n-1,m)+m)%n
(J(n-1,m)+m) 理解如下:
举个例子:n = 3 (下标 0,1,2) m = 2
第一趟:0,1(√),2 下标1的被淘汰
从2开始报1 ,与第一趟同一个角度:假设报1的是下标理论上应该是0(第一趟的下标是0),现在的2下标是2,他理论下标是0(引入理论下标是为了喊号到m),但是他在上一趟的实际下标是2,当前理论下标与实际下标之间相差(0,2)为2,就是m,所以 (J(n-1,m)+m)就是这样来的
而 (J(n-1,m)+m)%n这样是因为有时候m>n,超过了一圈人数,所以得取模


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

相关文章

openpnp - 底部相机高级校正的参数设置

文章目录 openpnp - 底部相机高级校正的参数设置概述笔记修改 “Radial Lines Per Calibration Z” 的方法不同 “Radial Lines Per Calibration Z”的校验结果不同 “Radial Lines Per Calibration Z”的设备校验动作的比较总结备注END openpnp - 底部相机高级校正的参数设置 …

深度学习模型性能优化实战之从评估到提升的全流程解析

1. 概述 在构建和使用机器学习模型的过程中,模型的效果评估和优化是两个至关重要的环节。无论模型是用于分类、回归还是其他任务,评估其表现以及持续优化模型性能,都是确保模型在实际应用中取得成功的关键。本节将重点介绍模型效果评估的定义…

XSS | DOM 型 XSS 攻击

关注这个漏洞的其他相关笔记:XSS 漏洞 - 学习手册-CSDN博客 0x01:DOM 型 XSS —— 理论篇 DOM 全称 Document Object Model,使用 DOM 可以使程序和脚本能够动态访问和更新文档的内容、结构及样式。 DOM 型 XSS 是一种特殊类型的反射型 XSS&…

枚举算法基础(C++)

第1题 鸡兔同笼 时限:1s 空间:256m 一只鸡有2个脚,一只兔有4个脚。你需要购买若干只鸡和若干只兔,使得下面两个条件同时成立: 1、鸡的数量加上兔的数量等于a。 2、鸡和兔总共有b只脚。 如果可以完成任务输出”…

Android 简单实现联系人列表+字母索引联动效果

效果如上图。 Main Ideas 左右两个列表左列表展示人员数据,含有姓氏首字母的 header item右列表是一个全由姓氏首字母组成的索引列表,点击某个item,展示一个气泡组件(它会自动延时关闭), 左列表滚动并显示与点击的索引列表item …

计算机毕业设计 基于SpringBoot和Vue的课程教学平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【Docker】配置文件

问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…

如何使用ssm实现基于HTML的中国传统面食介绍网站的搭建+vue

TOC ssm758基于HTML的中国传统面食介绍网站的搭建vue 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔…