Tip 1 - Practice Atleast 250 Questions
Tip 2 - Ex- Do atleast 2 projects
Tip 3 : Do practice on Codechef , Leetcode, gfg
Tip 4: practice past year questions
Tip 1 : In the projects section, keep a maximum of 3 projects, but ensure that at least one of them is hosted/live that can be shown to the interviewer.
Tip 2: Do not put false things on resume
4 coding problems were given to be solved with in 60 minutes



A person can also kill himself.
The simple approach is to create a list and add all values from 1 to N to it. Create a recursive function that takes a list, start (position at which counting will start), and k ( number of people to be skipped) as an argument. If the size of the list is one i.e. only one person left then return this position. Otherwise, start counting the k person in a clockwise direction from starting position and remove the person at the kth position. Now the person at the kth position is removed and now counting will start from this position. This process continues till only one person is left



A Subsequence of a string is the one which is generated by deleting 0 or more letters from the string and keeping the rest of the letters in the same order.
One by one fix characters and recursively generate all subsets starting from them. After every recursive call, we remove the last character so that the next permutation can be generated.


If there are multiple conflicting meetings for a particular meeting. You can return any one of them.
Consider the matrix MEETINGS = [ [ 1, 3 ] , [ 4, 5 ] , [ 2, 5 ] ]
The array containing the Conflicting Meetings will be [ 3, 3, 1 ].
A Simple Solution is to one by one process all appointments from the second appointment to last. For every appointment i, check if it conflicts with i-1, i-2, … 0. The time complexity of this method is O(n2).
We can use Interval Tree to solve this problem in O(nLogn) time. Following is a detailed algorithm.
Create an Interval Tree, initially with the first appointment.
Do following for all other appointments starting from the second one.
Check if the current appointment conflicts with any of the existing appointments in Interval Tree. If conflicts, then print the current appointment. This step can be done O(Logn) time.
Insert the current appointment in Interval Tree. This step also can be done O(Logn) time.



We cannot use the element at a given index twice.
Try to do this problem in O(N) time complexity.
We take two pointers, one representing the first element and other representing the last element of the array, and then we add the values kept at both the pointers. If their sum is smaller than X then we shift the left pointer to right or if their sum is greater than X then we shift the right pointer to left, in order to get closer to the sum. We keep moving the pointers until we get the sum as X.
The interviewer was cool. He makes me comfortable and then ask questions from resume. Then he ask questions from dsa and gives coding problem to solve.


The width of each bar is the same and is equal to 1.
Input: ‘n’ = 6, ‘arr’ = [3, 0, 0, 2, 0, 4].
Output: 10
Explanation: Refer to the image for better comprehension:

You don't need to print anything. It has already been taken care of. Just implement the given function.
Approach: In the previous solution, to find the highest bar on the left and right, array traversal is needed, which reduces the efficiency of the solution. To make this efficient, one must pre-compute the highest bar on the left and right of every bar in linear time. Then use these pre-computed values to find the amount of water in every array element.
Algorithm:
Create two arrays left and right of size n. create a variable max_ = INT_MIN.
Run one loop from start to end. In each iteration update max_ as max_ = max(max_, arr[i]) and also assign left[i] = max_
Update max_ = INT_MIN.
Run another loop from end to start. In each iteration update max_ as max_ = max(max_, arr[i]) and also assign right[i] = max_
Traverse the array from start to end.
The amount of water that will be stored in this column is min(a,b) – array[i],(where a = left[i] and b = right[i]) add this value to total amount of water stored
Print the total amount of water stored.



1. There will be no leading zeros in any string in the list ‘BINARYNUMS’.
Consider N = 5 and the list ‘binaryNums’= [“0”, “01”, “010”, “100”, “101”]. This list consists of the binary representation of numbers [0, 1, 2, 4, 5]. Clearly, the missing number is 3 and its binary representation will be “11”. So you should return string “11”.
Approach:
Sort the input array.
Traverse the array and check for missing and repeating.
what do you understand by OOPS concept. Define 4 pillars of OOPS
Explain inheritance using examples.
What are joins and tell me the types of joins.
What is hash table and tell me the load factor in hashtable ?
It was a HR round.
Are you comfortable in dealing with clients?
What if there is an conflict in your team, what you will do to resolve it?
Why Bonami?
Tell me about yourself.
It was a managerial + technical round



[1, 2, 3, 4] is a strictly increasing array, while [2, 1, 4, 3] is not.
The simulation of approach will make things clear:
Input : arr[] = {3, 10, 2, 11}
LIS[] = {1, 1, 1, 1} (initially)
Iteration-wise simulation :
arr[2] > arr[1] {LIS[2] = max(LIS [2], LIS[1]+1)=2}
arr[3] < arr[1] {No change}
arr[3] < arr[2] {No change}
arr[4] > arr[1] {LIS[4] = max(LIS [4], LIS[1]+1)=2}
arr[4] > arr[2] {LIS[4] = max(LIS [4], LIS[2]+1)=3}
arr[4] > arr[3] {LIS[4] = max(LIS [4], LIS[3]+1)=3}
We can avoid recomputation of subproblems by using tabulation
what are binary trees
Do you have any other offer?
Are you comfortable if we change your domain in programming?
How will you deal with conflict with the clients?
What qualities do you have that will benefit this company?

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