Tip 1 : Prepare data structures and algorithms along with problem solving
Tip 2 : Prepare atleast two projects to have some knowledge of development
Tip 3 : Be confident while giving the interviews
Tip 1 : Don't put irrelevant information in your resume for the sake of filling the page
Tip 2 : Have 2 or 3 good projects and put only the technologies and programming languages to which you are really confident
Timming was around 2 PM
This was mainly a technical round. Interviewer asked some conding questions and CS fundamentals questions



The given linked list is 1 -> 2 -> 3 -> 4-> NULL. Then the reverse linked list is 4 -> 3 -> 2 -> 1 -> NULL and the head of the reversed linked list will be 4.
Can you solve this problem in O(N) time and O(1) space complexity?
The idea is to use three pointers curr, prev, and next to keep track of nodes to update reverse links.
Step-1 : First break the link of 'curr' node and point it to 'prev'(i.e. NULL)
Step-2 : Now before moving 'curr' on to next node make sure to point
Step-3 : prev' pointer at 'curr' (It is neccessary to do so otherwise we might lose track of rest of the linkedlist) and then make curr = next node



Consider 0-based indexing.
Consider the array 1, 2, 3, 4, 5, 6
We can Jump from index 0 to index 1
Then we jump from index 1 to index 2
Then finally make a jump of 3 to reach index N-1
There is also another path where
We can Jump from index 0 to index 1
Then we jump from index 1 to index 3
Then finally make a jump of 2 to reach index N-1
So multiple paths may exist but we need to return the minimum number of jumps in a path to end which here is 3.
Step-1 : Initialize a variable reach to 0, which represents the farthest index that can be reached so far.
Step-2 : Loop through the array nums and for each index i, do the following:
a. If i is greater than reach or reach is greater than or equal to nums.length - 1, break the loop as it means
reaching the last index is not possible.
b. Update the value of reach as the maximum of reach and i + nums[i].
Step-3 : Return reach >= nums.length - 1, which means that the last index can be reached or not.
This was also a technical round focused mainly on problem solving and data structures



Input: 'arr' = [2, 2, 2, 2, 0, 0, 1, 0]
Output: Final 'arr' = [0, 0, 0, 1, 2, 2, 2, 2]
Explanation: The array is sorted in increasing order.



Each product can cross the integer limits, so we should take modulo of the operation.
Take MOD = 10^9 + 7 to always stay in the limits.
Can you try solving the problem in O(1) space?
Step-1 : We are required to solve this problem without using the division operator. We can do this by calculating two arrays pre and suf where pre[i] contains product of all nums[j] such that j <= i, and suf[i] contains product of all nums[j] such that j >= i.
Step-2 : Finally, the resulting array ans can be calculated as ans[i] = pre[i-1] * suf[i+1] which is product of all elements with index less than i multiplied by product of all elements with index greater than i. This is essentially equal to product of array except self at each index.
This was final HR round.
Interviewer was very humble and supportive
Tell me about yourself other than the things in resume
Why do you want to work for our company?
Why should we hire you?
Tip 1 : Do not ask the interviewer what he wants to know about you.
Tip 2 : Introduce yourself by including certain adjectives like problem-solving, innovation and tech-savvy,
creative, quick learner, etc. that best describe you in your professional life to boost your chances.
Tip 3 : Be confident and tell about extra curricular activities and achievements

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
How do you remove whitespace from the start of a string?