Samsung Research Institute, Bangalore (SRI-B) visited our NIT-Warangal campus on 17th September 2020 for hiring interns for summer 2021. Only Circuit Branch students(CSE, ECE, EEE) were allowed to apply for this intern and with CGPA>=7.0. There were overall 3 rounds. Around 130 students have applied for this position.
Note: The entire process was virtual as colleges are not open during this pandemic time.
Online Test: This was conducted in cocubes.com with proctoring allowed. We are given 3 coding questions to be solved in 65 minutes. Each question is assigned some marks. STL was not allowed which was not needed for me. Different people got different sets of questions.
- Row wise sorting in 2D array (3 marks) -EASY
- Sum of cousins of a given node in a Binary Tree (5 marks) -TOUGH
- Remove BST keys outside the given range
https://leetcode.com/problems/trim-a-binary-search-tree/ (5 marks)- MODERATE
First can be solved using simple sort but the input array is given as an INT** array, so a bit tricky to use pointers. The second can be solved using breadth-first search (Edge cases are necessary to be dealt with). The third can be solved using recursion and min-max property of a BST.
I have solved all 3 questions. I have solved them beforehand in Geeksforgeeks during my preparation.
Many have solved all 3 questions. So, time complexity and time of submission mattered for shortlisting.
TECHNICAL INTERVIEWS: There were 2 interviews which were both technical. Both were on skype. I have shared a code pair link where I have to write pseudocode or complete executable code if necessary.
Round1: The interview started with his introduction and asked me to introduce myself. Then he asked about my DBMS project. Then about my project on web development. He was impressed with my database.
He then asked for a simple puzzle: If there were 10 teams in IPL and if each team has to play 3 matches with every other team in the league stage, how many matches will the IPL have in the league phase.
Then few SQL queries on real-life situations based on group-by, joins, top and order-by. Then he asked about NORMALISATION.
He started asking questions on DS and algorithms. He asked me to implement a stack using a queue. I have done it. Then he asked few coding questions on Linked Lists and Trees.
Write a function to get the intersection point of two Linked Lists. I have to write executable code which I have done. (A 2 pointer approach). The extension was found the intersection part length which was very easy.
You are given a Double Link List with one pointer of each node pointing to the next node just like in a single link list. The second pointer however CAN point to any node in the list and not just the previous node. Now write a program in O(n) time to duplicate this list. That is, write a program that will create a copy of this list.
I have explained its process. He was quite impressed with my answer(no need to code).
How to construct a binary tree given preorder and in-order. I have answered an O(n2) approach. He has asked what if it was a BST. I said we can do it in O(n) time without the need of in-order using the min-max method of tree traversal. He was quite impressed with my approach.
I wrote a pseudo-code, he was pretty satisfied with my approach.
This round lasted for an hour, and he asked if I have any questions for him. The interviewer was very friendly. I asked a few questions about the company working and tech stack. Then in 20 minutes, I got a link to my mail for round2.
Round2: The interviewer asked me to introduce myself. He also asked about my DBMS project.
Then he asked if I am familiar with OOP concepts. I said yes. He asked about inheritance and diamond problem. He asked how to overcome this problem. I told the scope operator and virtual keyword. He then asked about VTABLE and VPTR(Run-time Polymorphism). Then he asked about abstraction and interfaces in Java. Then questions on advanced pointers like singleton pointers etc., in C++. I was asked in-depth questions in OOPs overall.
Then he started asking questions about data structures.
- Spiral-level Order of a binary tree. It took 10-15 minutes for me to completely code it.
- Merge Sort and Quicksort. I have to write a pseudocode. Then recurrence relations on time-complexities of them. Then he asked which one is best between those 2. Be good at writing pseudo-codes.
- Then he asked me about hashing. Then asked me to explain different hashing techniques. Then about the best hashing technique. I have done quite well overall in this round. I have explained everything he asked me.
Then asked me if I had any questions for him. This round also lasted for an hour. He said you are done with the process, and we will get to you. After a wait for almost 4 hours, I have received a mail that I am selected. I am very excited to work there.
Note: Don’t get nervous at the start. It is very important to be talking to the interviewer about your approach while coding.
Thanks, Geeksforgeeks for helping me to learn different techniques and topics which has helped me to achieve this.