以下是根据在多家公司的面试经验(我和朋友)收集的前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) 缓存线,缓存内部概念,RR调度
6) 打印给定链表的中间部分( https://www.geeksforgeeks.org/write-a-c-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) 使用Thread和Runnable在Java中创建线程的区别
21)hashset是如何在Java内部实现的。
23)找出整数数组中不重复的数字,其他数字出现两次。 ( 非重复元素 )
e.g. Input : 23, 34,56,21,21,56,78,23, 34 Output: 23 Hint: USE XOR
24) 系列化 以及相关概念。
25)TreeSet中的比较器
感谢Geeksforgeks团队提供了一个不错的平台。你们是最棒的。
本文由 里希·维尔马 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。