前 25 名面试问题
以下是根据在多家公司面试的经验(我的和朋友的)收集的 TOP 25 常见问题。
1)最低共同祖先(https://www.geeksforgeeks.org/lowest-common-ancestor-binary-tree-set-1/)
2) 给出一个未排序的整数数组;您需要找到由三个数字相乘形成的最大乘积。 (不能对数组进行排序,当有负数时要小心)
3) 树的左视图 (https://www.geeksforgeeks.org/print-left-view-binary-tree/)
4)数组的反转(https://www.geeksforgeeks.org/write-a-program-to-reverse-an-array/)
5)Cache Line,Cache内部概念,RR调度
6)打印给定链表的中间(https://www.geeksforgeeks.org/write-ac-function-to-print-the-middle-of-the-linked-list/)
7)链表中元素的成对交换(https://www.geeksforgeeks.org/pairwise-swap-elements-of-a-given-linked-list/)
8) HashMap 内部结构 (http://javarevisited.blogspot.in/2011/02/how-hashmap-works-in-java.html)
9)双重检查单例(http://javarevisited.blogspot.in/2014/05/double-checked-locking-on-singleton-in-java.html)
10)工厂模式(http://javarevisited.blogspot.in/2011/12/factory-design-pattern-java-example.html)
11)以螺旋形式打印给定矩阵(https://www.geeksforgeeks.org/print-a-given-matrix-in-spiral-form/)
12) 图上的 DFS 及其表示(https://www.geeksforgeeks.org/graph-and-its-representations/,http://ideone.com/TA4ldc)
13)面向对象的概念、多态、方法重载、方法覆盖、抽象与封装的区别、聚合与组合
14) 打印链表中的第 n 个最后一个节点
15)在给定约束下删除链表中的给定节点(https://www.geeksforgeeks.org/delete-a-given-node-in-linked-list-under-given-constraints/)
16) 使用队列实现堆栈(https://www.geeksforgeeks.org/implement-stack-using-queue/)
17)查找两个矩形是否重叠(https://www.geeksforgeeks.org/find-two-rectangles-overlap/)
18) 多线程概念
19) 给定一个整数数组,用前一个和下一个整数的乘法更新索引。
e.g. Input: 2 , 3, 4, 5, 6
Output: 2*3, 2*4, 3*5, 4*6, 5*6
20) Java使用Thread和Runnable创建线程的区别
21)hashset是如何在Java内部实现的。
22)死锁示例代码(Producer & Consumer Code)
23) 找出整数数组中不重复的数,其他数出现两次。
e.g. Input : 23, 34,56,21,21,56,78,23, 34
Output: 23
Hint: USE XOR
24) 序列化和相关概念。
25) TreeSet 中的比较器
感谢 geeksforgeeks 团队提供了一个很好的平台。你们是最棒的。