📅  最后修改于: 2023-12-03 15:02:50.572000             🧑  作者: Mango
Mahindra Comviva 是一家提供移动服务产品和解决方案的公司,总部位于印度班加罗尔。该公司的客户包括通信运营商、银行和金融机构、零售商和移动设备制造商。在这次面试中,我准备了以下内容:
有一些经典的数据结构和算法问题,可以充分测试面试者的编程技能和逻辑思维能力。以下是我在试用程序员时问的一些问题:
给定一个数组,请写一个函数来查找其中的两个数,使它们相加等于给定的目标值。你可以假设每个输入都只有一个解决方案,并且你不能使用同一个元素两次。
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] {map.get(complement), i};
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution");
}
你有一个大小为 n 的数组,其中只有一个数字出现一次,剩下的数字都出现两次。找到只出现一次的数字。
public int singleNumber(int[] nums) {
int res = 0;
for (int i : nums) {
res ^= i;
}
return res;
}
给定一个二叉树,找出其最大深度。
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
Java、Python、C++和SQL是在面试中最常出现的编程语言之一。我准备了以下问题,以测试面试者对编程语言的熟悉程度和应用经验:
Java中静态变量和实例变量有什么区别?
Python中的生成器是什么?如何使用它们?
C++中大小与类型有关的特殊数据类型是什么?
请解释SQL中的内部连接。
最后,我也会询问面试者的个人项目和工作经验。如果你是一名有经验的开发人员,那么你不仅需要在实际项目中熟练运用编程语言和技术,还需要展示出在团队合作、项目管理和沟通方面的能力。下面是我准备的一些问题:
请谈谈您最近在项目中使用的编程语言和技术。
请列出您在开发过程中使用的任何工具或软件。
请谈谈您最近在一个团队中工作的经验,并分享你的职位和角色。
以上是我在Mahindra Comviva的面试经历,我希望这些问题能对那些正在寻找技术工作的人有所帮助。