第一轮:(Java在线编码挑战)
这是一个关于Java的在线编码挑战(150分钟)。网络摄像头是参加这次考试的必备工具。共有3个问题:1个简单,1个中等,1个困难。如果我们提交了上一个问题,我们就只能进入下一个问题。
问题1:这是一个简单的问题,我们必须扩展一个抽象类,重写其中的两个方法,并添加更多的方法。虽然分配给我的时间是40分钟,但我还是在6分钟内解决了这个问题。(我猜有点太多了)
问题2:这是一个中庸的问题,这个“中庸”的标签误导了我。这个问题相当简单,但一开始我没有正确地阅读这个问题,并编写了一个错误的解决方案。我最终在分配给我的50分钟时间里,在30分钟内解决了这个问题。如果我正确地阅读了这个问题,我本可以在10分钟内轻松地解决这个问题。这是一个基于数组操作的简单即席问题。
问题3:在分配给我的1小时时间里,我用了18分钟解决了这个难题,结果发现我解决这个难题的时间比解决中等问题的时间要少。这是一个基于最长回文子序列的问题,我在过去几个月里对动态规划的密集练习帮助我轻松通过了所有测试用例。
总的来说,我花了大约50分钟完成了测试,并获得了100/100的分数。我觉得自己有很好的机会晋级第二轮,我最终晋级了,并被要求在海得拉巴MLR理工学院参加下一轮。只有两名学生从我的学院获得了下一轮的资格,我很高兴能和他们在一起。
第二轮:(JAVA编码挑战)
这一轮包含了11个基于java、OOP、C++、DBMS、网络和操作系统的20个问号。还有两个Java编码问题,其中一个是中等问题,一个是硬问题。该测试的总时间为2小时。这一轮的截止值是40/100。得分低于40分的学生被要求离开,而得分高于40分的学生则被要求留在后面继续学习。我在4分钟内解决了中级问题,而难的问题需要解决正则表达式的知识。从给定的字符串中,我必须找出它是IPV4地址还是IPV6地址,或者两者都不是。我不知道正则表达式,但我还是找到了一个解决方法,通过了除2之外的所有测试用例。那个问题我得了34/50分。我没有进一步尝试,因为我知道我已经有资格进入下一轮,因为上一个问题我已经获得了30分。我最终的得分是75.2/100,考虑到其他学生的表现,这一点后来被证明是出类拔萃的,但我真的觉得我应该做得更好。150多名学生(针对该中心)中有37名学生通过了第二轮考试,并被要求去吃午饭。
第三轮:(小组讨论)
接下来是小组讨论。这真的很有趣,因为我们有机会认识彼此,在这一轮结束后交了几个朋友。我们得到的情况是,地球将在未来15分钟内被摧毁。我们只有三个人能活下来,我们必须决定谁是幸运者/不幸者。在这一轮中没有人被淘汰,我们被要求继续进行技术性的一轮。
第四轮:(技术面试)
这是一场40分钟到1小时的艰苦面试,小组中只有一名成员。然而,我已经在TCS有过面试经验,因此我没有太多的恐惧感,保持冷静。
记者:好的,那么你是加尔各答人?
我:是的,先生。
记者:很好,事实上我喜欢孟加拉人,因为他们工作很努力。
我:不是,先生。我认为我们是你见过的最懒的人。
记者:哈哈,好吧,让我们从问题开始。这将是一轮快速射击,你必须快速回答。你准备好了吗?
我:是的,先生。
记者:什么是字符串不变性?
我:解释
记者:什么是串池?
对不起,先生,我不知道。(后来我发现我知道这个概念,但不知道它被称为字符串池。)
面试官:写一个代码来演示动态方法调度。
我:是吗
记者:什么是抽象类?
我:告诉你了。
记者:静态的、私有的、最终的方法可以被推翻吗?
我:没有,先生。然而,重写静态方法不会产生任何编译时错误,但其他两个方法会。
记者:很好。接口和抽象类之间有什么区别?
我:告诉你了。
采访者:那么Riddhi,你将如何在JAVA中实现多重继承呢?
我:在界面的帮助下,先生。一个接口可以实现和扩展多个接口。
记者:什么是静态课堂?
告诉我
面试官:内部课堂和嵌套课堂有什么区别?
我:告诉你了。(他现在似乎对我很满意)
面试官:解释最后的课程,最后的方法。
我:是吗
采访者:什么是最终场,静态场。给我它的应用程序
我:是吗
记者:什么是单身班。写一段代码来解释它是如何工作的。
我:她写道
采访者:什么时候可以覆盖对象类的克隆方法。
我:先生,只有当那个类实现了Cloneable,这是一个标记接口时。只有当出现浅层复制的问题时,我们才应该这样做。
采访者:你是哇,概念到pura clear hain tumhara!
我:谢谢,先生。(从面试官那里得到称赞可能是有史以来最好的事情。我的神经安定下来了。但是下一个问题
采访者:什么是可扩展框架?
我:(相信我,我还没有找到这个问题的答案)。
面试官:记住,如果其他人回答了这个问题,你就走了!
我:(被拉回到地面,我的信心受到打击)
记者:好的,那么告诉我为什么JAVA是平台独立的?
告诉我
面试官:我们可以在一个班里有多个建设者吗。如何实施?
我:是的,先生,通过构造函数重载。
记者:你知道super和这个吗?
我:是的,先生,我解释过了。
采访者:字符串生成器和字符串缓冲区有什么区别?
我:缓冲区是线程安全的,先生,但另一个不是。
采访者:和之间的区别是什么。等于()?
告诉我
面试官:好的,请向我解释一下java中哈希映射的内部工作原理。
我:详细解释了他使用单独的链接方法和桶数组。它也提出了很多问题。
记者:你用的是链表,我们能用其他更好的数据结构吗?
我:先生,大概是BST。
采访者:是的,在Java5之前,他们使用链表,但现在他们使用平衡的BST。
我:点头。
面试官:你是我遇到的第一个真正能回答这个问题的候选人。没人能。所以你做得很好,有很大的机会。不要把它扔掉。
我:当然,先生,我会尽力的。(信心恢复)
面试官:好的,现在让我们测试一下你解决问题的能力。你在第二轮中得了75分。哇,太棒了。让我们看看你在这里的表现。我们开始好吗?
我:是的,先生。
记者:我有一个未排序的数组。我想让你从这个数组中返回一对2的数字,使之和等于x。用最有效的方法为我做这件事。告诉我方法。
Me:先生,通过运行两个循环并逐个检查所有对的组合,可以得到O(N^2)的方法。
记者:我说的是有效的解决方案!
我:给我两分钟,先生…。(思考,思考……几秒钟后)好的,我明白了,先生。我会在Nlogn做的。我将首先对数组进行排序,然后对a[I]的每个值在数组中应用二进制搜索,以查找数组中是否存在x-a[I]。如果我被发现,我就完蛋了。对于每一次迭代,我都会做logn工作。
记者:很好,那会有用的。转到下一个问题。
假设我有一个0和1的数组,它们没有排序。我怎样才能有效地对它们进行排序?
我:先生,我将使用双指针方法在O(n)和一次遍历中完成它。
采访者:你将如何检测链表中的循环?
我:将保留一个布尔数组,如果我访问一个循环,它将标记为已访问…。
采访者:(打断我。)我不想浪费额外的空间。
我:好的,让我再试一次,先生…。
面试官:在这里应用两点怎么样?
我:好的,先生,我知道了。(用两个指针向他解释了我的方法)。
记者:你将如何只打印一棵树的左视图?
Me:使用级别顺序遍历,先生,将始终打印队列中的第一个元素。
面试官:你如何找到字符串中第一个不重复的字符?
我:用散列图向他解释我的逻辑。
面试官:我如何通过最短路径从矩阵中的(0,0)位置到达(n-1,n-1)位置。
我:我会用BFS的,先生。
记者:如果成本不同呢?
Me:然后将使用动态规划,因为BFS只对单位值有效。我们将使用最小成本路径算法。
记者:太好了。现在假设我有一个分散的1和0的矩阵。一群1形成一个岛。你将如何找到这些岛屿的数量?
Me:连接部件的数量将是答案,先生。
面试官:那你会怎么发现呢?
我:先生,我会多次使用BFS或DFS,直到我访问了所有节点。(随后向他解释了整个方法,他似乎很满意)
记者:好的,让我们继续猜谜。你喜欢解决它们吗?
我:是的,先生。(虽然那一刻我没有。我很确定你读到现在都很无聊,而我才是真正经历了这一整天的人。我没有心情解决谜题。)
记者:有8个球。其中一个更轻。用最小重量找到较轻的。
我:3位先生。(尽管答案是2)
记者:好了,里德,我说完了。谢谢你抽出时间。
我:谢谢你,先生。
我通过了技术回合,又进行了一轮(HR),持续了大约30分钟。然后,我们中的5个人被带到一个房间,在那里我们被告知,在成功地通过了所有回合后,我们被列入了入围名单。然而,他们无法确认我们的报价,因为他们必须访问其他中心,并将从印度各地总共录取200名候选人。
这是一次很棒的经历,我第一次感觉到我对竞争性编码的热情在很大程度上帮助我破解了编码和技术难题。等待结果。祝你好运。