[剑指 Offer 62]圆圈中最后剩下的数字(约瑟夫环问题:动态规划)

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践 (应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。 阅读详情

[剑指 Offer 62]圆圈中最后剩下的数字(约瑟夫环问题:动态规划)

题目:

  • 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。

  • 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。

示例 1:

输入: n = 5, m = 3
输出: 3

示例 2:

输入: n = 10, m = 17
输出: 2

思路:

约瑟夫环:动态规划,采用数学推导出转移方程

  • 对于[n, m问题],首轮删除环中第m个数字后,得到一个长度为 n - 1 的数字环。

  • 由于有可能 m > n,因此删除的数字为 (m - 1) % n,删除后的数字环从下个数字(即m % n)开始,

  • 设 t = m % n,可得"新数字环"在"旧数字环"中的对应下标为: 【 t,t+1,t+2,…,0,1,…,t-3,t- 2 】(t-1为被删除的数字)

  • 旧环删除数字 nums[(m-1)%n] 后的新环的起始下标为 旧环中的 m % n = t

  • 删除一轮后的数字环变为[n-1,m问题],其数字下标对应关系如下:

	      新环下标(本环)    新环下标在旧环(上环)下标中对应的下标
			   0                      (t+0)%n
			   1                      (t+1)%n
			  ...                      ...
			  n-2                     (t+n-2)%n
  • 所以新环中的下标 x 与在旧环中对应下标 X 的关系为 X = (t + x) % n
  • 删除到最后的新环中只有一个元素,下标为0,可以通过下标递推关系 找出其在"最旧环"中的下标
 X = (t + x) % n   --->  f(X) = (t + f(X - 1)) % n         (f(X - 1)为旧环下标,f(X)为旧环在其"上一层"新环中对应的下标)
                   --->       = (m % n + f(X - 1)) % n
                   --->       = (m + f(X - 1)) % n         (m % n % n == m % n)
  • 最终的环,只有一个元素,下标为 0
  • 推导最终环的上一个环,有两个元素…
  • 再到上一个环,有三个元素,直到推到最原始的 n 个元素的环

代码:

class Solution {
    public int lastRemaining(int n, int m) {
        int x = 0;
        for (int i = 2; i <= n; i++) {
            x = (x + m) % i;
        }
        return x;
    }
}
Easymesh之拓扑模块(二) 介绍 easymesh 拓扑消息:Topo discovery、Topo notification、Topo query、Topo response 阅读详情

相关推荐

Android应用开发从零到一:基于Kotlin与Jetpack Compose的完整实践指南

移动应用开发的核心在于构建一个架构清晰、可维护且可扩展的应用基础。理解应用架构的原理,如关注点分离和数据驱动UI,是实现高质量应用的关键技术价值。在现代Android开发中,Kotlin语言凭借其空安全特性和协程,能有效提升代码的健壮性与开发效率。Jetpack Compose作为声明式UI框架,代表了UI开发的未来方向,与Kotlin协程深度集成,简化了复杂交互界面的构建。这些技术共同服务于个人任务管理、企业工具等多种应用场景。本文以构建一个完整的个人任务管理应用为例,系统阐述从环境搭建、UI构建、数据持

weixin_32667955的博客 313

【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字

剑指 Offer 62. 圆圈中最后剩下的数字

2022年毕业的萌新程序猿,输出一下自己的学习内容~ 440

FIddler+Proxifer 实现PC客户端抓包详细教程

FIddler+Proxifer 实现PC客户端抓包详细教程

森明帮大于黑虎帮的博客 1万+

剑指offer 62. 圆圈中最后剩下的数字

剑指offer 62. 圆圈中最后剩下的数字 题目描述 解题思路 参考题解:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/solution/jian-zhi-offer-62-yuan-quan-zhong-zui-ho-dcow/ 约瑟夫环问题,用动态规划解决。 class Solution { public int lastRemaining(int n, int m) {

Charison的编程妙妙屋 145

ATAC-seq数据分析流程

Outline0. ATAC-seq原理0.1 染色体结构0.2 原理0.3 结果0.4 意义1. ATAC-seq数据分析流程1.1 上游分析(1)序列质控和比对(2)序列筛选1.2 下游分析1.3 进阶分析 0. ATAC-seq原理 0.1 染色体结构 0.2 原理 0.3 结果 0.4 意义 1. ATAC-seq数据分析流程 1.1 上游分析 (1)序列质控和比对 fastqc trim_golare bowtie2 mapping时要加上参数 --very-sensitive -X 2000

weixin_57830892的博客 1万+

红外避障模块介绍

该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接回输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3v-5v。该模块测距离2~~30cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;1.VCC外接3.3v-5v电压(可以直接与5v单片机和3.3v单片机相连).

weixin_46251230的博客 2万+

剑指offer day24 数学(中等)

day24题目:剑指 Offer 14- I. 剪绳子、剑指 Offer 57 - II. 和为s的连续正数序列、62. 圆圈中最后剩下的数字,知识点:数学、双指针,难度为中等、简单、简单

cos的博客 273

YOLOv12改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制

这篇文章带来一个经典注意力模块的汇总,虽然有些模块已经发布很久了,但后续的注意力模块也都是在此基础之上进行改进的,对于初学者来说还是有必要去学习了解一下,以加深对模块,模型的理解。

Limiiiing的博客 1509

圆圈中最后剩下的数字(约瑟夫环问题)

0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。...

weixin_43954951的博客 2877

基于ESP32的室内空气质量检测系统开发

随着环境污染问题的日益严重,室内空气质量的监测变得越来越重要。室内空气质量的好坏直接影响到人们的健康,尤其是对于在封闭空间长时间待着的人群。为此,基于ESP32的室内空气质量检测系统应运而生。ESP32作为一款集成了Wi-Fi和蓝牙的高性能微控制器,为嵌入式开发提供了良好的平台,适用于构建各种智能硬件设备。本博客将详细介绍如何基于ESP32开发一个室内空气质量检测系统。系统可以实时监测空气中的温度、湿度、二氧化碳浓度、甲醛浓度等指标,并通过Wi-Fi将数据传输到云端或移动设备,方便用户随时查看空气质量情况。

2201_76125393的博客 832

手把手教你学Simulink——基于电机驱动系统的场景实例:永磁同步电机(PMSM)在电动汽车中的矢量控制仿真

随着全球对环境保护的关注增加,电动汽车(Electric Vehicle, EV)因其环保特性而受到广泛关注。永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)由于其高效率、高功率密度和良好的动态响应性能,在电动汽车驱动系统中得到了广泛应用。矢量控制(Field-Oriented Control, FOC)是实现PMSM高性能控制的关键技术之一,它能够实现对电机转矩和磁场的独立控制,从而达到类似直流电机的控制效果。本文将详细介绍如何使用来构建一个。

MHD0815的博客 1万+

剑指Offer62: 圆圈中最后剩下的数字(约瑟夫环问题)

题目: 0,1,...,n-1等n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,最后剩下的数字是3. 删除过程: loop 1: 删除从0开始的第三个位置上的数字2 loop 2: 重新编号,从3开始计数,第三个数字...

weixin_43276913的博客 471

SAPGUI excel 导出时遇到的运行时错误:STRING_SIZE_TOO_LARGE

当报表导出需求远超单一 XLSX 文件的物理承载力时,与其在 SAPGUI 中硬拼 2 GB 限制,不如把分页、过滤、流式写入作为设计前提。掌握 ABAP2XLSX 或 CSV + Power Query 等工具链,既能满足审计合规,又能让应用服务器远离的噩梦。祝你在下一次导出海量数据时,既高效又优雅。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 640

【LeetCode & 剑指offer刷题】发散思维题3:62 圆圈中最后剩下的数字(约瑟夫环问题)...

【LeetCode &amp; 剑指offer刷题】发散思维题3:62 圆圈中最后剩下的数字(约瑟夫环问题) 【LeetCode &amp; 剑指offer 刷题笔记】目录(持续更新中...) 62 圆圈中最后剩下的数字(约瑟夫环问题)   题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元...

技术改变世界 914

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【剑指 Offer 62. 圆圈中最后剩下的数字】

【剑指 Offer 62. 圆圈中最后剩下的数字】题目描述:示例:解析思路1:代码(python3)代码(cpp) 题目描述: 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、

是小武呀 467

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

每日一题 - 剑指 Offer 62. 圆圈中最后剩下的数字

每日一题 - 剑指 Offer 62. 圆圈中最后剩下的数字 题目信息 时间: 2019-07-06 题目链接:Leetcode tag: 动态规划 迭代 约瑟夫环 难易程度:中等 题目描述: 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例1: 输入: n = 5

一只小菜鸡的博客 282

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

剑指 Offer 62. 圆圈中最后剩下的数字 (约瑟夫环)

LeetCode - 剑指 Offer 62. 圆圈中最后剩下的数字题目描述解题分析code总结 参考题解 by leetcode- Vancomycin 题目描述 难度:简单 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1: 输入: n =

zy的博客 789

【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)

剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 来源:力扣(LeetCode) 链接:https://leetcod

赖念安的博客 462

剑指 Offer 62. 圆圈中最后剩下的数字

题目描述: 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1: 输入: n = 5, m = 3 输出:3 示例 2: 输入: n = 10, m = 17 输出:2 限制: 1 <= n<= 10^5 1...

weixin_43098069的博客 6845

【剑指Offer】个人学习笔记_62_圆圈中最后剩下的数字

目录题目:[剑指 Offer 62. 圆圈中最后剩下的数字](https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/)题目分析初始解答:学习他人:方法一:方法二:方法三:方法四:总结 刷题日期:下午8:42 2021年5月26日星期三 个人刷题记录,代码收集,来源皆为leetcode 经过多方讨论和请教,现在打算往Java方向发力 主要答题语言为Java 题目: 剑指 Offer 62. 圆圈中

苏柒的博客 364

[[EVD]] - 剑指 Offer 62. 圆圈中最后剩下的数字

题目分析:[[EVD]] - 剑指 Offer 62. 圆圈中最后剩下的数字https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 简单描述: 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个

風的博客 957

剑指offer第二版(Python3)--面试题62 : 圆圈中最后剩下的数字

0, 1, 2 ,...,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。

鲁班七号 328

【数学--约瑟夫环】剑指 Offer 62. 圆圈中最后剩下的数字

数学题目无简单题。。。 约瑟夫环

LogosTR_的博客 844

剑指Offer(62)圆圈中最后剩下的数字

目录 圆圈中最后剩下的数字 描述 示例 1 示例 2 限制 方法:动态规划 圆圈中最后剩下的数字 描述 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1 输入 n = 5, m = 3 输出 3 示例

小唐要努力的博客 159

剑指Offer 62. 圆圈中最后剩下的数字

题目描述: 有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版。请你试着想下,哪个小朋友会得到这份礼品呢?(注:小朋友的编号是从0到n-1)。如果没有小朋友,请返回-1。本题还有一种描述是:每次从1开始报数,然后报到m,第m个小朋友出列,然

Apple-yeran 的博客 404

剑指 Offer 62. 圆圈中最后剩下的数字思路推导(约瑟夫环、DP、递归)

一、题目 剑指 Offer 62. 圆圈中最后剩下的数字(约瑟夫环、DP、递归) 题目描述 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 示例1: 输入: n = 5, m = 3 输出: 3 示例2: 输入: n = 10, m = 17 输出: 2 二、分析 这是一道典型的约瑟夫环问题。n个数字,每次删除第m个数字,求最后剩下的一个数字是多少。 我们用动态规划的思想去做这道题。首先假设 f

qq_44850917的博客 446
上一篇: JUC并发编程第五篇,如何优雅的使用线程中断机制和线程等待唤醒机制?
下一篇: JUC并发编程第六篇,带你了解Java内存模型JMM
Anton丶
博客等级 码龄9年 1887粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anton丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值