线性表分为:顺序表和链表
1.腾讯面试题(快速找到未知长度单链表的中间节点?)
普通算法:先遍历一个遍单链表以确定,链表长度,然后再次从头节点出发循环L/2次找到单链表的中间节点。时间复杂度为O(L+L/2)=O(3L/2)。
最有算法:设置两个指针,一个指针指向下个节点,一个指针指向下下个节点。当第二个节点指向末尾时,第一个节点刚好指向中间。时间复杂度为O(L/2)。

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

3.魔术师发牌。

4.拉丁方正
(注意循坏链表的创建)

5.输入任意数,遍历字母的顺序。
(注意双向链表的创建)

网友评论