算法学习——线性表

线性表分为:顺序表和链表

1.腾讯面试题(快速找到未知长度单链表的中间节点?)

普通算法:先遍历一个遍单链表以确定,链表长度,然后再次从头节点出发循环L/2次找到单链表的中间节点。时间复杂度为O(L+L/2)=O(3L/2)。

最有算法:设置两个指针,一个指针指向下个节点,一个指针指向下下个节点。当第二个节点指向末尾时,第一个节点刚好指向中间。时间复杂度为O(L/2)。


2.约瑟夫问题(41个人围成一圈,分别为1到41号,每隔两个人消失一个人,存活下来的号数?)


3.魔术师发牌。

4.拉丁方正

(注意循坏链表的创建)

5.输入任意数,遍历字母的顺序。

(注意双向链表的创建)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容