第 1 轮(在线测试):
四个编程问题-
a) 给定一个字符串,找出作为回文的不同子字符串的数量。
b) 在矩阵中,我们可以通过消除 column 中的任何元素来破坏它的一列。我们必须完全破坏矩阵,以便我们破坏的元素(不是破坏本身)的总和最小,因为我们应该取消一行中的至少一个元素。输出是那个最小的总和。
c) 给定网格中的 N 个点,我们必须找到边长为 K 的所有不同(至少是一个不常见的边)正方形。N、K 和点将被输入,不同正方形的数量将被输出。
d) 给定一个数组,我们必须按递增顺序对其进行排序,以使 V 的值最小。其中 V = sum(给定数组中元素的位置 * 元素排序数组的位置),元素的位置从 1 开始。输出是排序数组和 V。
第 2 轮(第 1 轮面试): OOP 的概念,如多态性和继承性以及与已完成项目相关的问题。
第三轮(面试第二轮):
1. 一些更多的 OOPs 概念。
2. Hashmap 等数据结构、排序算法(快速排序和合并排序)(复杂性以及如何实现它们)。
3. 什么是Java (因为它是我的主要编程语言)。
4. 静态和动态编程语言的区别。
5. 链表的实现(具有正确语法的代码)。
6. 如何求一个数的平方根(不使用内置函数,最有效的方法 O(logN))。
7. 在一个数组中,每个数字被存储两次,除了一个只放置一次。 (最佳效率 O(logN))。
8. 在元素从 1 到 N 的排序数组中,只有一个缺失,因此数组大小为 N-1。以最有效的方式 (O(logN)) 查找缺失的数字,并且不会出现溢出的可能性。