算法学习——线性表

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

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

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

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


算法学习——线性表_第1张图片

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


算法学习——线性表_第2张图片

3.魔术师发牌。

算法学习——线性表_第3张图片

4.拉丁方正

(注意循坏链表的创建)

算法学习——线性表_第4张图片

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

(注意双向链表的创建)

算法学习——线性表_第5张图片

你可能感兴趣的:(算法学习——线性表)