今年不管是校招还是社招,都比较的火爆,下面给大家推荐下智一面收集的几道大厂算法题,帮助大家增加面试通过几率,以下是列举的一些算法题

没有规定用哪一种语言,就选自己最擅长的,用c/c++、java、python、go、javascript都可以实现

1)链表排序(来源:字节跳动、快手、小米)

将给定的单链表 LL0 → L1 →…→ Ln−1​ → Ln

重新排序为:L0 ​→ Ln → L1 ​→ Ln−1 → L2 → Ln−2 ​→…

要求使用原地算法,不能改变节点内部的值,需要对实际的节点进行交换。

例如:

对于给定的单链表{10,20,30,40},将其重新排序为{10,40,20,30}

 

2)给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。(来源:字节跳动、微软)

例如,给出n=3,解集为:

"((()))", "(()())", "(())()", "()()()", "()(())",

示例:

输入:

1

返回值:

["()"]

 

3)给定一棵二叉树,已经其中没有重复值的节点,请判断该二叉树是否为搜索二叉树和完全二叉树。(来源:字节跳动、中国银行)

示例:

输入:

{2,1,3}

返回值:

[true,true]

来源:智一面