Algorithms_基础数据结构(04)_线性表之链表_单向循环链表&约瑟夫环问题

举报
小工匠 发表于 2021/09/10 23:23:47 2021/09/10
【摘要】 文章目录 大纲图链表的经典面试题目如何设计一个LRU缓存淘汰算法约瑟夫问题 结构分析 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 tip:单向链表 ...

在这里插入图片描述


大纲图

在这里插入图片描述


链表的经典面试题目

如何设计一个LRU缓存淘汰算法

tip:单向链表


约瑟夫问题

N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。

举个例子: 假设N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。
现在问你最后留下的人是谁?
比如N=6,M=5 ,留下的就是1

1 2 3 4 5 6 => 6 1 2 3 4 => 6 1 2 3 =>1 2 3 => 1 3 => 1

  
 
  • 1

tips: 单向循环链表


结构

在这里插入图片描述

相比单向链表(单向链表的tail节点next指针指向null) , 单向循环链表无非就是把尾结点的next指针重新指向head节点而已。

代码实现也相对简单,多一步操作, 思路可参考 Algorithms_基础数据结构(02)_线性表之链表_单向链表 ,这里我们直接使用单向循环链表来解决个经典的算法问题吧。


分析

在这里插入图片描述在这里插入图片描述

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/103864131

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。