Tip 1 : Prepare System Design
Tip 2 : Practice DSA Questions properly
Tip 3 : Practice OOPS and DBMS Concepts
Tip 1 : Your Resume should consist mainly of skills, projects, and achievements. Projects would play a crucial part in your interview and you should have at least one most relevant and good project that shows how strong your concepts are in development.
Tip 2 : The most important tip is that never lie on your resume If you have worked upon some technology for the project part only and don't know the proper depth you could write basics only in your resume.
This round was conducted on HackerEarth. It had 3 DSA questions that needed to be completed in 90 minutes.



For the given binary tree: [1, 2, 3, -1, -1, 4, 5, -1, -1, -1, -1]
Start Node: 3
1
/ \
2 3
/ \
4 5
Output: 2
Explanation :
In the zeroth minute, Node 3 will start to burn.
After one minute, Nodes (1, 4, 5) that are adjacent to 3 will burn completely.
After two minutes, the only remaining Node 2 will be burnt and there will be no nodes remaining in the binary tree.
So, the whole tree will burn in 2 minutes.
Create a hashmap and find the node to parent mapping.
Make pointers that will point to the node having a value target.
Write a function that will call recursively to itself and returns the distance to all leaf nodes.
Return the maximum distance among them.



find the largest number(say MAXI) whose sum upto natural numbers is less than N using Binary search. Since the last number will always be a multiple of K, we get the last number of complete turns. Subtract the summation till then from N. Distribute the remaining candies by traversing in the array.



Let's say the given array is [ 9, 98, 7].
All the possible numbers formed by concatenating each of the array elements are 7989,7998,9879,9897,9987,9798. Among the six numbers, 9987 is the greatest number. Hence the answer is 9987.
Used a greedy algorithm to solve this is O(N) time complexity.
It was mainly focused on a DSA problem and later we had project discussion and some on-spot optimizations and design problem related to my project.



If the given linked list is 1 -> 2 -> 3 -> 4 -> 5 -> NULL.
Then rearrange it into 1 -> 5 -> 2 -> 4 -> 3 -> NULL.
split linkedlist into two halves
find mid and split
and revese second half
merge these two halves
It was more focused on core concepts of CS, some questions on CN, OOPs were asked, we discussed my past internship experience, some of my projects, interestingly I was asked have you used any OOPs in any of your project, well I told them most of my projects are on Web Dev and I said I mostly prefer functional javascript and why is it so but then I explained some concepts like prototypical inheritance, event delegation in javascript, later I was given a DSA problem and at last I was asked to design Snake and Ladder game.



The distance between two nodes can be obtained in terms of lowest common ancestor. Following is the formula.
Dist(n1, n2) = Dist(root, n1) + Dist(root, n2) - 2*Dist(root, lca)
'n1' and 'n2' are the two given keys
'root' is root of given Binary Tree.
'lca' is lowest common ancestor of n1 and n2
Dist(n1, n2) is the distance between n1 and n2.



For a (6 x 6) board, the numbers are written as follows:

You start from square 1 of the board (which is always in the last row and first column). On each square say 'X', you can throw a dice which can have six outcomes and you have total control over the outcome of dice throw and you want to find out the minimum number of throws required to reach the last cell.
Some of the squares contain Snakes and Ladders, and these are possibilities of a throw at square 'X':
You choose a destination square 'S' with number 'X+1', 'X+2', 'X+3', 'X+4', 'X+5', or 'X+6', provided this number is <= N*N.
If 'S' has a snake or ladder, you move to the destination of that snake or ladder. Otherwise, you move to S.
A board square on row 'i' and column 'j' has a "Snake or Ladder" if board[i][j] != -1. The destination of that snake or ladder is board[i][j].
You can only take a snake or ladder at most once per move: if the destination to a snake or ladder is the start of another snake or ladder, you do not continue moving - you have to ignore the snake or ladder present on that square.
For example, if the board is:
-1 1 -1
-1 -1 9
-1 4 -1
Let's say on the first move your destination square is 2 [at row 2, column 1], then you finish your first move at 4 [at row 1, column 2] because you do not continue moving to 9 [at row 0, column 0] by taking the ladder from 4.
A square can also have a Snake or Ladder which will end at the same cell.
For example, if the board is:
-1 3 -1
-1 5 -1
-1 -1 9
Here we can see Snake/Ladder on square 5 [at row 1, column 1] will end on the same square 5.
What is method overloading?
What is the meaning of method overriding?
.How can data abstraction be accomplished?
Tip 1 : Be clear with the explanation
Tip 2 : if any question requires explanation use the resource that is provided for explaining
Tip 3 : study the most important questions.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?