# Fidelity Investments Interview Experience for Internship (Oct 2020)

7th October 2020. Fidelity investments came to our college Vellore Institute of Technology to hire students for summer intern 2021. The CGPA cutoff for the 1st round was 8.5. Around, 900 students appeared for the 1st round.

1st round (online): It consisted of 4 sections.

First Section: Consisted of basic multiple-choice questions that checked our proficiency in the English language. There were 10 MCQs and the time allotted was 15 mins.

Second Section: It had 20 technical MCQs which consisted of questions based on fundamentals of Computer Networks, OOPS, SQL, and guess the output of given snipped of C++ code and time allotted was 30 mins. Some guesses of the output question were tricky as they had multiple function calling and recursion involved.

Third Section: We had 1 hour to solve 2 very easy coding questions. It took me 12 mins to solve both and pass all test cases.

1. Given a num N, calculate the number of points in the range (1,n) which when multiplied by 3 and then incremented by 1 { i.e. (3Ã—arr[i]+1) } exceeds the value N.
2. Fairly simple question on hashing. Given a matrix (given input matrix may not be a  square matrix) and a count c, we need to convert that matrix into a square matrix and fill the remaining spaces with 1. Then calculate the total points in the left diagonal, whose count is more than c in the converted square matrix.

Fourth Section: This was a tough round. We were given only 15 mins to write two algorithms for two given questions.

1. The first question was based on the Floyd Warshall algorithm. I left the 1st question blank as I have always used Dijkstra and LCA for finding the shortest path.
2. Given an array and a num K, we need to partition the array in K sub-arrays, and then we need to find the minimum of maximum sum possible of any sub-array after any partition. Let me explain with the help of example : arr[] = {10,20,30,40,50,70} and k = 3. This array can be partitioned in k sub-arrays in the following ways and let us also calculate the maximum sum of any sub-array after each partition:
```(a) 10,20,30+40+50+70;     max_sum = 190
(b) 10,20+30,40+50+70;     max_sum = 160
(c) 10,20+30+40,50+70;     max_sum = 120
(d) 10,20+30+40+50,70;     max_sum = 140
(e) 10+20,30,40+50+70;     max_sum = 160
(f) 10+20,30+40,50+70;     max_sum = 120
(g) 10+20,30+40+50,70;     max_sum = 120
(h) 10+20+30,40,50+70;     max_sum = 120
(i) 10+20+30,40+50,70;     max_sum = 120
(j) 10+20+30+40,50,70;     max_sum = 100```

Our required output is the minimum of all this max_sum i.e 100

Since I have done some competitive coding I was really able to think and came up with solutions based on binary search. Time complexity was 0(n*log(n)). We can do this by dynamic programming also by recursion and memoization.

2nd Round: 46 students were shortlisted for the technical interview round including me. It went bad for me. My interviewer didn’t ask me much about coding and DSA, just 2 questions on trees and stack. Next, he moved to the projects mentioned in my resume. I explained to him, but he didn’t seem convinced. Next, I was given some scenarios related to market, business, finance, and customer, and he needed my answers on how ML, data science can play a role in studying the market and how we can reduce the company cost in managing and providing security to large databases and we interacted over it for around 30 mins. Then, he ended up saying, now itâ€™s your turn, you can ask me anything. I asked him 2-3 questions related to the company environment and the type of projects we will be given to work upon.

The results were announced in the next 30 minutes and  I was not called for further rounds. Around 20 students were selected for further rounds. Finally, they gave an offer to 11 candidates.

Previous
Next