4 Questions on gilder.ai platform. All the questions were doable, 1 question had a bug in driver code (I guess it was done intentionally).
I solved 2 full and 2 partial (a total of 3 test cases did not pass in the remaining 2 questions)
It was scheduled for 45 minutes, but lasted only for 30 minutes.
At the beginning I was asked to give a pseudo code on my project. I used OOPS heavily in that one, I just drew the UI on a whiteboard for him, explained how the game works and then showed him how I used concepts like Inheritance, Composition etc.. in my project. He seemed very much satisfied with my project and moved on to OOPS
In OOPS he was asking me some classical theory questions. One such question was:
class A{
protected:
int a;
}
class B: public A{
A* obj = new A();
// can I do obj->a? why or why not?
}
He also asked me how to prevent a class from creating new objects, I suggested him to make the constructor private. Then he gave a follow up on what is the default access specifier in C++. (Another Classic question)
He also asked will the properties of abstraction, inheritance, polymorphism be violated if the constructor is private? (I did not understand this question and told him the question was not clear)
Then he moved on to namespaces in C++. Asked about how to do inheritance in C++ when both the classes are in different namespace.
I was given exact 329. Longest increasing path in a matrix problem
The question description was very much modified to make the candidates confusing. I did not understand the question and asked him several clarifications (at a point I was so much scared he will kick me out in the middle of the interview for asking so many clarifications).
Finally, I told him that the first approach I get is of dynamic programming and something similar to level order BFS, and I proceeded with BFS.
The algo was like:
1. push all the coordinates of min element in the queue
2. Add the next element only if it greater and then proceed.
3. Then from the unvisited elements start the level order BFS again by pushing the min elements into the queue.
The answer will be the max value we get from all level order traversals.
He asked me T.C of BFS approach, I told O(m*n). I guess there was some flaw in my approach, my friends told the T.C of BFS will O((m * n)^2), and the correct way was to do is using toposort.
The interviewer asked if it can be done using O(n log m). I asked if the rows/ columns are sorted. If so we can try something with binary search. He said they can be in any random order. Then I asked him for hints. He just asked me to answer yes or no. I said no.
I lost all hopes for getting called for the next round after this DSA Hard question.
Finally he asked "Have you taken any AI ML course?". Before he could finish the question I shouted NO, (LOL). He still went on and asked me
Have you used ChatGPT ?
I said yes, politely. Then he asked me what is the difference between ChatGPT reasoning and GitHub Copilot. I became speechless. Then I blabbered something, he said it was fine and this question was not a part of the interview.
Finally during the end of the interview I apologized for asking too many clarifications on the DSA question. To my surprise, he told that he intentionally made the question in a confusing way to test if the candidate asks for clarifications or just assume stuff.
I was lucky to have some good set of interviewers in this round. They were straight to the point and all their questions were clear.
In this round, they again asked me about the same project. I was instructed to draw the schema for this project. I explained them 3-4 main tables and their relations. Then they asked why I designed it like this and what will happen if I design it in some XYZ way. I told all the advantages and drawbacks of my design and their proposal and proved them that my design is better than their proposal.
Then they asked me how my schema was normalized.
OOPS was relatively easy, given that you have already studied it properly
Construct a binary tree using preorder and inorder.
I messed up in this question. I got confused with preorder and inorder as I studied it a long back. I told them the first element in inorder will be the root. Then they told I was wrong.. I asked for some time.
I wrote the code for inorder, preorder and did a dry run on a binary tree, explaining all that stuff to them and then I solved the question. I just told them the logic to solve the question, they seemed satisfied.
I haven't studied LLD specifically for interviews. They gave me a question of a vehicle rental system. Seems like it is a classic problem on LLD. I thought they just want to test my OOPS skill using that problem. I realized I was doing LLD only in the middle of the question (;;).
I didn't draw any UML diagram as I was not aware of all those. I just wrote the class and almost working C++ code with the knowledge I had on OOPS concepts like inheritance and polymorphism etc.. and my experience building projects. They gave me some hints on which functions should be present at which place. I just aggreed to whatever they said and made the modifications. They seemed satisfied.
To conclude, the second interview went very well compared to my first interview. However I was pretty worried about messing up with the inorder and preorder as it was quite basic.
I can understand lot of you are doing hard work, please make sure to not stress out too much during the process. Have faith and trust the process. In my experience getting a job/intern requires much more luck than your hard work.

Consistency is more important. Make a promise to yourself that you will solve at least one question per day.
I would like to thank the leetcode community for all the support during my preparation and I wish you all GOOD LUCK. Never stop working.
Thank you