今年不管是校招还是社招,都比较的火爆,下面给大家推荐下智一面收集的几道大厂算法题,帮助大家增加面试通过几率,以下是列举的一些算法题
没有规定用哪一种语言,就选自己最擅长的,用c/c++、java、python、go、javascript都可以实现
1)链表排序(来源:字节跳动、快手、小米)
将给定的单链表 L:L0 → 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]
来源:智一面