第1轮:
在线回合, 在90分钟内回答20个客观问题(与数据结构, 算法分析, C语言和一些难题有关的问题)和2个编码问题
编写程序以反转链接列表的k个备用节点例如:1-> 2-> 3-> 4-> 5-> 6-> 7-> 8-> 9如果k为3, 输出应为:3-> 2-> 1-> 6-> 5-> 4-> 9-> 8-> 7
给定一个字符串。编写一个程序, 以所有单词的第一个字符组成一个字符串。例如:桶里装满了水输出:Tbifow检查所有的边角情况。
回合2:面对面回合
- 给定二叉树。修改它的方式是, 修改后你可以仅使用右指针对其进行预遍历。在修改期间, 你可以使用左右指针。编写完整的代码, 并在某些测试案例中进行空运行。
- 给定2个链表。找出它们是否相交。如果是, 找到交点为它编写完整的代码。
我不记得这种简单的方法:找到列表的长度, 然后根据长度的不同向前移动较短的列表, 然后找到相交点。相反, 我在第二个列表的末尾加入了第一个列表的末尾, 然后通过弗洛伊德循环查找算法进行了循环查找。尽管两者均为O(n), 但由于它是一种新方法, 给他留下了深刻的印象。
第三回合:面对面
- 给定一个0和1的排序数组。找出编号。其中的0。编写代码的递归迭代版本, 并检查所有测试用例。
- 螺旋水平顺序遍历, 无需使用额外的变量来检测水平(使用一个堆栈和一个队列)以及其他几种实现方式。
亚马逊的所有练习题
!