多拉特资本面试经历 |设置 1(校内)
那是一次校园面试。共有140名学生申请了这份工作,3名学生收到了录取通知书。
有4轮
第一轮:编码
我们被要求在 2 小时内完成三个程序。一个程序很难,另外两个非常简单。每个程序的权重不同
程序 1(最高权重)
从任一端插入和删除链表中的整数值。即插入和删除应仅从一端。还可以在任何点找到链表中的最大值。
此 ADT 上的所有操作都需要以恒定的时间复杂度完成。
节目二(中等权重)
我不记得问题了,参考本文末尾的代码。
程序3(最小权重) 。
它是为快速排序编写代码。
第 2 轮:Apitude:quants 和 C 输入输出
这是一个笔和纸轮。
C 输入输出题 20 道,能力题 10 道,有负分。
由于负面标记,问题很棘手,因为选项非常接近,例如,
a) 程序给出警告并给出输出……。
b) 编译时错误
c) 运行时错误
d) 执行输出......
在某些情况下,只需进行一些复杂的计算,Quants 问题就很容易了。
我想这次测试的总时间是 40 分钟,但足以解决所有问题。
几天后,共有11名学生入围面试。
第三轮:面试
基本的问题,但在 C 上很棘手。比如静态、全局、外部、静态全局和全局之间的差异。
在定义如何修复它之前给出了一些代码,其中使用了变量。
ans:使用 extern 声明变量,编译器之后会找到定义
有人问了一个谜题,一根由 7 个单位组成的银棒被分成 3 部分来支付一个要工作 7 天的员工的工资。
作为一组非常小的解决方案,我能够进行蛮力和一些逻辑思考,并迅速提出答案。
随后面试官询问了内存泄漏和一些可能发生内存泄漏的复杂情况。
第 4 轮:面试 2
第一次面试后,5名学生入围第二轮面试。
这是一个非常短的 10 分钟面试,每个问题都被问了 2 个问题,每个问题都有 5 分钟的时间来解决。
问题1:在2个链表中找到交点。
我被问到一些关于蔬菜小贩和假钞的问题,我给出了正确的答案,但面试官重新解释了这个问题,但不幸的是我第二次也无法理解这个问题,到那时 10 分钟就结束了。
第二天我被选中并在 3 天内收到了录取通知书
总体来说是一次不错的体验,希望这篇文章对其他人有所帮助。
/*
time complexity :O(n)
space complexity:O(1)
input size is not considered for computing space complexity
*/
#include
int main()
{
int array_size;
printf("enter the array size : ");
scanf("%d",&array_size);
int *array=(int *)malloc(sizeof(int)*array_size);
int iteration=0;
printf("enter the array elements \n");
for(; iterationmax_sum?current_sum:max_sum;
}
printf("\n max sum from all sorted sub array is: %d\n",max_sum);
free(array);//although is not required to free the data since program exits
// and there is no problem of memory leak,but a good practice to free data
return 0;
}
/*
output:
xxxxxx@ubuntu:~$ ./a.out
enter the array size : 10
enter the array elements
1 2 3 4 2 7 1 4 2 5
sorted sub elements : 1 2 3 4 ,sum : 10
sorted sub elements : 2 7 ,sum : 9
sorted sub elements : 1 4 ,sum : 5
sorted sub elements : 2 5 ,sum : 7
max sum from all sorted sub array is: 10
*/