做网站最主要,北京餐饮品牌设计公司,网站的结构布局,蓝色企业网站配色牛客题霸 [ 环形链表的约瑟夫问题] C题解/答案
题目描述
据说著名犹太历史学家 Josephus 有过以下故事#xff1a;在罗马人占领乔塔帕特后#xff0c;39 个犹太人与 Josephus 及他的朋友躲到一个洞中#xff0c;39 个犹太人决定宁愿死也不要被敌人抓到#xff0c;于是决定…牛客题霸 [ 环形链表的约瑟夫问题] C题解/答案
题目描述
据说著名犹太历史学家 Josephus 有过以下故事在罗马人占领乔塔帕特后39 个犹太人与 Josephus 及他的朋友躲到一个洞中39 个犹太人决定宁愿死也不要被敌人抓到于是决定了一种自杀方式41 个人排成一个圆圈由第 1 个人开始报数报数到 3 的人就自杀然后再由下一个人重新报 1报数到 3 的人再自杀这样依次下去直到剩下最后一个人时那个人可以自由选择自己的命运。这就是著名的约瑟夫问题。现在请用单向环形链表得出最终存活的人的编号。
n 表示环形链表的长度 m 表示每次报数到 m 就自杀。
题解
遍历环形链表每遍历 m 个节点就删除一个节点知道链表只剩下一个节点就可以了。
代码
class Solution {
public:/*** * param n int整型 * param m int整型 * return int整型*/int ysf(int n, int m) {// write code hereint a0;for(int i2;in;i){a(am)%i;}return a1;}
};