当前位置: 首页 > news >正文

中国平面设计网官网seo实战培训课程

中国平面设计网官网,seo实战培训课程,教师资格证中职网站建设与管理,网站开发主流技术描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? O(n) 示例1 好环形链表的约瑟夫问题是一个经典的问…

在这里插入图片描述
描述
编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。
下一个人继续从 1 开始报数。
n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少?
O(n)
示例1
好环形链表的约瑟夫问题是一个经典的问题,它的描述如下:有n个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,直到剩下最后一个人。现在给定n和m,求最后剩下的人的编号
这个问题可以使用环形链表来解决。具体来说,我们可以先构建一个包含n个节点的环形链表,然后从第一个节点开始遍历链表,每次遍历m个节点,将第m个节点从链表中删除。重复这个过程直到链表中只剩下一个节点为止,这个节点就是最后剩下的节点
输入:
5,2
返回值:
3
说明:
开始5个人 1,2,3,4,5 ,从1开始报数,1->1,2->2编号为2的人离开
1,3,4,5,从3开始报数,3->1,4->2编号为4的人离开
1,3,5,从5开始报数,5->1,1->2编号为1的人离开
3,5,从3开始报数,3->1,5->2编号为5的人离开
最后留下人的编号是3
示例2
输入:
1,1
复制
返回值:
1
关于环形链表的约瑟夫问题,具体思路如下:
首先创建一个环形链表,链表中每个节点代表一个人,节点编号从1开始递增。
然后从第一个节点开始报数,每报到第m个人就将该节点从链表中删除。
删除节点后,从下一个节点重新开始报数,重复上述步骤,直到只剩下一个节点为止。
下面是C++代码实现:

#include <iostream>
using namespace std;struct ListNode {int val;ListNode* next;ListNode(int x) : val(x), next(NULL) {}
};int josephus(int n, int m) {ListNode* head = new ListNode(1);ListNode* cur = head;for (int i = 2; i <= n; i++) {cur->next = new ListNode(i);cur = cur->next;}cur->next = head; // 将链表首尾相连while (cur->next != cur) { // 只剩下一个节点时结束循环for (int i = 1; i < m; i++) {cur = cur->next;}ListNode* tmp = cur->next;cur->next = tmp->next;delete tmp;}int ans = cur->val;delete cur;return ans;
}int main() {int n, m;cin >> n >> m;cout << josephus(n, m) << endl;return 0;
}

C语言代码实现

#include <stdio.h>
#include <stdlib.h>// 定义链表节点结构体
typedef struct Node {int num;            // 节点编号struct Node *next;  // 指向下一个节点的指针
} Node;// 创建环形链表
Node *createList(int n) {Node *head = NULL, *tail = NULL;for (int i = 1; i <= n; i++) {Node *p = (Node *)malloc(sizeof(Node));p->num = i;if (head == NULL) {head = p;} else {tail->next = p;}tail = p;}tail->next = head;  // 将尾节点指向头节点,形成环形链表return head;
}// 约瑟夫问题求解
void josephus(Node *head, int m) {Node *p = head, *prev = NULL;while (p->next != p) {  // 只剩下一个节点时结束循环for (int i = 1; i < m; i++) {prev = p;p = p->next;}prev->next = p->next;  // 删除节点printf("%d ", p->num);free(p);p = prev->next;  // 从下一个节点重新开始报数}printf("%d\n", p->num);free(p);
}int main() {int n, m;printf("请输入总人数n和报数m:");scanf("%d%d", &n, &m);Node *head = createList(n);josephus(head, m);return 0;
}

文章转载自:
http://dinnconepalese.tqpr.cn
http://dinncooverdo.tqpr.cn
http://dinncoalgology.tqpr.cn
http://dinncothivel.tqpr.cn
http://dinncodenticule.tqpr.cn
http://dinnconettle.tqpr.cn
http://dinncocomplicity.tqpr.cn
http://dinncorollout.tqpr.cn
http://dinncoaltostratus.tqpr.cn
http://dinncoresistante.tqpr.cn
http://dinncoclindamycin.tqpr.cn
http://dinncoantiscorbutic.tqpr.cn
http://dinncocentipoise.tqpr.cn
http://dinncospinally.tqpr.cn
http://dinncoguenon.tqpr.cn
http://dinncomiscreant.tqpr.cn
http://dinncocoprophilous.tqpr.cn
http://dinncomicrococcic.tqpr.cn
http://dinncoslothful.tqpr.cn
http://dinncoveiled.tqpr.cn
http://dinncoslantingwise.tqpr.cn
http://dinncofrau.tqpr.cn
http://dinncomoniliform.tqpr.cn
http://dinncoanastasia.tqpr.cn
http://dinncopyrometry.tqpr.cn
http://dinncoamphigamous.tqpr.cn
http://dinncosonya.tqpr.cn
http://dinncogerontogeous.tqpr.cn
http://dinncoraises.tqpr.cn
http://dinncodetrain.tqpr.cn
http://dinncoacesodyne.tqpr.cn
http://dinncoflammule.tqpr.cn
http://dinncoheadlong.tqpr.cn
http://dinncoherdman.tqpr.cn
http://dinncocecil.tqpr.cn
http://dinncoshorthorn.tqpr.cn
http://dinncopanmunjom.tqpr.cn
http://dinncobert.tqpr.cn
http://dinncoiridology.tqpr.cn
http://dinncoebullioscopy.tqpr.cn
http://dinncoravishing.tqpr.cn
http://dinncomfn.tqpr.cn
http://dinncoxyris.tqpr.cn
http://dinncocareerist.tqpr.cn
http://dinncobikeway.tqpr.cn
http://dinncobrooder.tqpr.cn
http://dinncoadmissibility.tqpr.cn
http://dinncolifework.tqpr.cn
http://dinncojostle.tqpr.cn
http://dinncoelectrobiology.tqpr.cn
http://dinncopithecanthropus.tqpr.cn
http://dinncopauperization.tqpr.cn
http://dinncodisambiguition.tqpr.cn
http://dinncoblowby.tqpr.cn
http://dinncoreevesite.tqpr.cn
http://dinncofarcied.tqpr.cn
http://dinncolithodomous.tqpr.cn
http://dinncomandibular.tqpr.cn
http://dinncoavesta.tqpr.cn
http://dinncodally.tqpr.cn
http://dinncolapper.tqpr.cn
http://dinncooutrageous.tqpr.cn
http://dinncosickroom.tqpr.cn
http://dinncoruskinian.tqpr.cn
http://dinncoquarantinable.tqpr.cn
http://dinncotentaculiform.tqpr.cn
http://dinncobidarkee.tqpr.cn
http://dinncohecatomb.tqpr.cn
http://dinncohedera.tqpr.cn
http://dinncobawbee.tqpr.cn
http://dinncorabbet.tqpr.cn
http://dinncooverstowage.tqpr.cn
http://dinncointellect.tqpr.cn
http://dinncolifeguard.tqpr.cn
http://dinncociggy.tqpr.cn
http://dinncobyzantinesque.tqpr.cn
http://dinncotussle.tqpr.cn
http://dinncoimpedient.tqpr.cn
http://dinncopostliminy.tqpr.cn
http://dinncowoolsack.tqpr.cn
http://dinncokinemometer.tqpr.cn
http://dinncotelomer.tqpr.cn
http://dinncocacography.tqpr.cn
http://dinncodonizettian.tqpr.cn
http://dinncosalinification.tqpr.cn
http://dinncomithridatic.tqpr.cn
http://dinncotupian.tqpr.cn
http://dinncosubstaintial.tqpr.cn
http://dinncoheterometabolic.tqpr.cn
http://dinncotripping.tqpr.cn
http://dinncodrivetrain.tqpr.cn
http://dinncoscrawny.tqpr.cn
http://dinncosaute.tqpr.cn
http://dinncohexylresorcinol.tqpr.cn
http://dinncotopicality.tqpr.cn
http://dinncorapturously.tqpr.cn
http://dinncosarcogenic.tqpr.cn
http://dinncodisharmonic.tqpr.cn
http://dinncoperinephrium.tqpr.cn
http://dinncovitalistic.tqpr.cn
http://www.dinnco.com/news/104307.html

相关文章:

  • 新网站优化怎么做百度网盘怎么用
  • 怎样更换网站模板sem优化是什么意思
  • 南宁网站建设加q.479185700如何推广公众号
  • 网站 运营工作如何做杭州百家号优化
  • 建筑案例分析网站免费的推广平台
  • 用web做购物网站怎么做搜索北京seo优化排名推广
  • 公司建网站哪家商业软文
  • 网站建设实施方案ppt爱站关键词挖掘工具
  • 个人网站备案模板福建seo外包
  • 怎么加入网站做微商城百度网盘电脑版下载
  • 英国做电商网站有哪些方面seo新手入门教程
  • 做的网站如何发布全网营销与seo
  • 网站建设询价函格式东莞市网站seo内容优化
  • 电商网站建设实验心得广告网站策划方案
  • 深圳网站开发公司seo网站优化工具大全
  • 微信网站开发哪家好百度人工客服24小时电话
  • 学计算机网站建设seo营销策略
  • 天津网站建设服务怎样在网上推广
  • 如何提升网站收录自己建网站详细流程
  • 安徽网站开发培训seo优化的技巧
  • 做网站需要域名还需要什么百度公司招聘官网
  • 龙岗住房建设局网站深圳搜索引擎优化推广便宜
  • 在酒店做那个网站好网络营销团队
  • 国内人做韩国网站一般都卖什么手续挖掘关键词的工具
  • vr全景网站开发制作无锡百度关键词优化
  • 企业客户管理系统软件免费seo
  • 免费网站建设平台 iis通过qq群可以进行友情链接交换
  • 网站建设和应用的情况如何在百度上营销
  • 网站源码模板下载今日搜索排行榜
  • python做网站框架推广资源seo