Tip 1 : It's a Daily process. Not weekly, Not monthly. DAILY!
Tip 2 : Take part in Online Contests. HackerEarth is best for Contests posted by companies.
Tip 3 : Even after you have solved some problem, try to find a better solution for it online. Companies don't want a solution, they want optimized solution.
Tip 1 : Modify resume for each job you are applying for. It should show why you are suitable for that particular job.
Tip 2 : Remove any extra things like interests and hobbies. No one cares.
Have to attempt 2 programming questions within 2:30 hours. Can take any time over the weekend. Relatively easy problems. Questions were long, but the solution code was small.






There must be no consecutive horizontal lines of equal height in the output skyline. For instance, [...,[2 3], [4 5], [7 5], [11 5], [12 7],...] is not acceptable; the three lines of height 5 should be merged into one in the final output.
As such: [..., [2 3], [4 5], [12 7],...].
Also, the buildings are sorted by a non-decreasing order.
For more clarification see sample case 1.
Had to solve 1 programming question in 4 hours. It was in the morning on a weekend. The environment was not so good. It was a small institute and got very crowded. The platform was also buggy. but the question was not difficult. Was able to solve it in just 1 hour and leave.


It was in the afternoon. The interviewer basically asked me what technologies I have worked on. Checked my knowledge of those technologies with simple questions. Told me what I'll be working on if I get selected.



Try to solve the problem in 'Single Scan'. ' Single Scan' refers to iterating over the array/list just once or to put it in other words, you will be visiting each element in the array/list just once.
It was also in the afternoon. The interviewer was the member of the team I'll be working on if I get selected. He asked me some basic questions about related technologies.
Gave me 2-3 DS & Algo problems and asked me to solve them.



Let us assume that we have a list of words found in the dictionary in the same order as given: [“baa”, “abcd”, “abca”, “cab”, “cad”]
Now, ninja needs to find the order of the characters used in these strings.
The order would be: ‘b’, ‘d’, ‘a’, ‘c’, because “baa” comes before “abcd”, hence ‘b’ will come before ‘a’ in the order, similarly because, “abcd” comes before “abca”, ‘d’ will come before ‘a’. And so on.
A certain list of words might have more than one correct order of characters. In such cases, you need to find the smallest in normal lexicographical order. In the case of INVALID ORDER, simply return an empty string.
words = [“aba”, “bba”, “aaa”].
In this case, no valid order is possible because, from the first two words, we can deduce ‘a’ should appear before ‘b’, but from the last two words, we can deduce ‘b’ should appear before ‘a’ which is not possible.
words = [“ca”, “cb”].
In this case, we only know that ‘b’ will come after ‘a’ in the order of characters, but we don't have any knowledge of ‘c’. So, the valid correct orders can be = “abc”, “cab”, “acb”. Out of these, “abc” is lexicographically smallest, hence it will be printed.



