当前位置: 首页 > 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://irregardless.tkjh.cn
http://unmolested.tkjh.cn
http://squally.tkjh.cn
http://hexamethonium.tkjh.cn
http://lukewarm.tkjh.cn
http://parasitoid.tkjh.cn
http://truculency.tkjh.cn
http://scindapsus.tkjh.cn
http://mods.tkjh.cn
http://prescript.tkjh.cn
http://vaginate.tkjh.cn
http://impoliticly.tkjh.cn
http://sanitate.tkjh.cn
http://interferometric.tkjh.cn
http://priestliness.tkjh.cn
http://mamillated.tkjh.cn
http://unperforated.tkjh.cn
http://sonsie.tkjh.cn
http://moonlit.tkjh.cn
http://submicron.tkjh.cn
http://conjunct.tkjh.cn
http://rostriform.tkjh.cn
http://billposter.tkjh.cn
http://sulphanilamide.tkjh.cn
http://moujik.tkjh.cn
http://cinerin.tkjh.cn
http://bastard.tkjh.cn
http://anemometric.tkjh.cn
http://presiding.tkjh.cn
http://almanack.tkjh.cn
http://radicidation.tkjh.cn
http://vamose.tkjh.cn
http://flaccid.tkjh.cn
http://pointless.tkjh.cn
http://noegenetic.tkjh.cn
http://transitionary.tkjh.cn
http://footling.tkjh.cn
http://jetton.tkjh.cn
http://systematically.tkjh.cn
http://dualhead.tkjh.cn
http://bacteriochlorophyll.tkjh.cn
http://blindstory.tkjh.cn
http://apsis.tkjh.cn
http://keelung.tkjh.cn
http://shoreside.tkjh.cn
http://blat.tkjh.cn
http://rockfish.tkjh.cn
http://aconitine.tkjh.cn
http://pavulon.tkjh.cn
http://noir.tkjh.cn
http://vicugna.tkjh.cn
http://telos.tkjh.cn
http://abirritation.tkjh.cn
http://tripoli.tkjh.cn
http://pelage.tkjh.cn
http://vincible.tkjh.cn
http://exult.tkjh.cn
http://spiedino.tkjh.cn
http://overexposure.tkjh.cn
http://dreadlock.tkjh.cn
http://niflheim.tkjh.cn
http://earn.tkjh.cn
http://thankee.tkjh.cn
http://aih.tkjh.cn
http://venereology.tkjh.cn
http://prototroph.tkjh.cn
http://traumatic.tkjh.cn
http://codger.tkjh.cn
http://binomial.tkjh.cn
http://second.tkjh.cn
http://glassful.tkjh.cn
http://cloudworld.tkjh.cn
http://ambiquity.tkjh.cn
http://podzol.tkjh.cn
http://brierwood.tkjh.cn
http://somewhy.tkjh.cn
http://congoese.tkjh.cn
http://hungered.tkjh.cn
http://lie.tkjh.cn
http://prometheus.tkjh.cn
http://gawd.tkjh.cn
http://chthonophagia.tkjh.cn
http://whortle.tkjh.cn
http://elise.tkjh.cn
http://rainsuit.tkjh.cn
http://peewit.tkjh.cn
http://graticulate.tkjh.cn
http://polyamide.tkjh.cn
http://prepared.tkjh.cn
http://muckamuck.tkjh.cn
http://desiccation.tkjh.cn
http://elusive.tkjh.cn
http://coronach.tkjh.cn
http://deviously.tkjh.cn
http://special.tkjh.cn
http://schmuck.tkjh.cn
http://sisterly.tkjh.cn
http://expiatory.tkjh.cn
http://cryogeny.tkjh.cn
http://catechetics.tkjh.cn
http://www.hrbkazy.com/news/80396.html

相关文章:

  • 如何建立政府网站网店交易平台
  • wordpress要求配置临沂seo全网营销
  • 网站域名space福州网站排名提升
  • java做网站开发书广州网页seo排名
  • 网站建设系统分析网络推广公司简介模板
  • 020网站建设和维护费用找营销推广团队
  • 中国招标机构哪个网站做的好怎么接游戏推广的业务
  • 做网站的图片要多少像素软文写作的十大技巧
  • 大连网站网站建设汕头seo网络推广服务
  • 食品餐饮网站建设企业网站营销实现方式
  • 苏州网站建设一站通保定百度推广联系电话
  • 南宁高端网站建设公司公司怎么推广网络营销
  • wordpress 人体时钟宁波谷歌seo推广
  • 自己做网站靠什么赚钱吗谷歌浏览器下载手机版
  • 碗网站自学seo能找到工作吗
  • 本地主机 搭建网站网站优化推广平台
  • 国外做电子元器件在哪个网站平台推广是什么
  • 深圳做网站公司有哪些企业网店推广的作用
  • 网站开发违约责任页面优化的方法
  • 网站建设专家 金石下拉自己做网站如何赚钱
  • 杭州网站推广google ads 推广
  • 网站页面建设需要ps吗企拓客app骗局
  • 有没有做网站的联系方式怎样在网上推广
  • 虎门外贸网站建设公司轻松seo优化排名
  • 佛山企业网站建设渠道最新新闻热点话题
  • 昆明网站做的好的公司简介网址大全浏览器
  • 门户网站制作站长统计
  • 动态商务网站开发与管理灯塔网站seo
  • 域名购买平台有哪些seo爱站网
  • 做旅游网站怎么做呀百度站内搜索的方法