题目

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

思路

直接用数组模拟圆圈,模拟删除的过程

class Solution {
public:int LastRemaining_Solution(int n, int m){if(n<1||m<1) return -1;int[] array = new int[n];int i = -1, step = 0, count = n;while(count > 0){   //跳出循环时将最后一个元素也设置为了-1i++;          //指向上一个被删除对象的下一个元素。if(i >= n)i = 0;  //模拟环。if(array[i] == -1)continue; //跳过被删除的对象。step++;                     //记录已走过的。if(step == m) {               //找到待删除的对象。array[i] = -1;step = 0;count--;}        }return i;//返回跳出循环时的i,即最后一个被设置为-1的元素
    }
};

转载于:https://www.cnblogs.com/shiganquan/p/9351821.html

【剑指offer】62、圆圈中最后剩下的数字相关推荐

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

    [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 文章目录 [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 一.动态规划 总结 一.动态规划 构建一个长度为 n ...

  2. java求最后一位不为0的数字_【Java】 剑指offer(62) 圆圈中最后剩下的数字

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 0, 1, -, n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字 ...

  3. 90. Leetcode 剑指 Offer 62. 圆圈中最后剩下的数字 (动态规划-基础题)

    步骤一.确定状态: 确定dp数组及含义 dp[i]表示的是i个数里面循环删除m个数剩下的数 步骤二.推断状态方程: 首先假设f(n,m)表示从n个数字0....n−1中每次删除第 m个数字之后剩下的数 ...

  4. 【LeetCode笔记】剑指 Offer 62. 圆圈中最后剩下的数字(Java、约瑟夫环、链表)

    文章目录 题目描述 思路 & 代码 链表模拟法 数学方法 二刷 题目描述 约瑟夫环!题目可太经典了 说实话还是有点难度的= = 思路 & 代码 链表模拟法 第一想法是用 LinkedL ...

  5. 打卡系列-剑指 Offer 62. 圆圈中最后剩下的数字

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

  6. 约瑟夫环的问题--剑指 Offer 62. 圆圈中最后剩下的数字

    class Solution {// f(n, m) = (f(n – 1, m) + m) % npublic int lastRemaining(int n, int m) {return (n ...

  7. 剑指offer:圆圈中最后剩下的数

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...

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

    剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每 ...

  9. 面试题62. 圆圈中最后剩下的数字

    面试题62. 圆圈中最后剩下的数字 思路:f(n,m) = (f(n-1,m)+m)%n.约瑟夫问题 写法1 class Solution { public:int lastRemaining(int ...

  10. LeetCode 面试题62. 圆圈中最后剩下的数字 详细题解

    面试题62. 圆圈中最后剩下的数字 难度 简单 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数 ...

最新文章

  1. SAP RETAIL 通过自动补货功能触发采购申请
  2. Vue项目多域名跨域
  3. linux安装python3.6以后报错处理
  4. mysql装完后navicat无法连接_重装mysql后导致Navicat连接失败
  5. mysql utf8 bin设置_[mysql]修改collation为utf8_bin
  6. ORA-01476: divisor is equal to zero解决方法
  7. MySQL索引结构--由 B-/B+树看
  8. liunx中安装软件的几种方式
  9. Java之美[从菜鸟到高手演变]之设计模式四
  10. svg html转换器,html – 将嵌入的SVG转换为PNG到位
  11. UE4 C++如何关闭进程?
  12. 马蜂窝ABTest多层分流系统的设计与实现
  13. 计算机应用宣传传统文化,计算机应用工程系创建优秀传统文化特色班级侧记
  14. An invalid domain [xx] was specified for this cookie
  15. Multisim10中仿真时间步长与数码显示管的类型有关
  16. 【程序】Marvell 88W8686 WiFi模块(WM-G-MR-09)创建或连接热点,并使用lwip2.0.3建立http服务器(20180312版)
  17. python对比两张图片的不同并圈起来,比较两幅图像/图片,并标记差异
  18. reads去污染接头
  19. 关于 OneNote 无法打开笔记本 无法打开该位置 没有该位置权限:
  20. pcie gen3 bios设置_公版RX5700刷RX 5700XT 显卡BIOS 的教程

热门文章

  1. FFmpeg源代码简单分析:结构体成员管理系统-AVClass
  2. ffdshow 源代码分析 9: 编解码器有关类的总结
  3. ffdshow 源代码分析 5: 位图覆盖滤镜(总结)
  4. 之前出的一道背包题面,暂无题解
  5. 【NOIP2017】【Luogu3954】成绩(模拟)
  6. 【LibreOJ109】【模板】并查集
  7. hibernate运行很慢?查一张只有几条记录的表都要一俩分钟?[问题记录]
  8. 归并排序(数组指针详细讲解,图例分析)
  9. Codeforces Round #223 (Div. 2): E. Sereja and Brackets(线段树)
  10. bzoj 3437: 小P的牧场(斜率DP)