Tip 1: Strengthen Python skills, especially for data analytics.
Tip 2: Revise SQL or any database concepts, since you’ll be working extensively with data.
Tip 3: Practice Data Structures and Algorithms thoroughly, as they are a major focus in interviews.
Tip 1: Tailor your resume to match the Job Description.
Tip 2: Be well-prepared with everything you’ve mentioned in your resume before the interview.



You are given an array prices where prices[i] is the price of a given stock on the ith day.
You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock.
Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return 0.
It was direct DP easy problem which can be solved in big(n) time complexity.



Given a string s, find the length of the longest substring without duplicate characters.
Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
This is medium rated problem, which can be solved using Hashmap, time complexity is big(n).



Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlap, merge them into [1,6].
Sort the intervals:
Sort the input array intervals based on the start time of each interval (i.e., the first element of each pair). Sorting helps to process intervals sequentially, ensuring that we can easily check if the current interval overlaps with the previous one.
Sorting is done in O(n log n) time complexity, where n is the number of intervals.
Initialize an empty list for merged intervals:
Create an empty list merged where you will store the non-overlapping intervals.
Iterate through the sorted intervals:
For each interval, check if it overlaps with the last interval in the merged list:
If the list is empty, add the current interval to the merged list.
Otherwise, compare the current interval's start time with the end time of the last interval in the merged list:
If they overlap: This means the current interval's start time is less than or equal to the end time of the last merged interval. In this case, merge the two intervals. The merged interval's end time will be the maximum of the end times of the two intervals.
If they don't overlap: Simply add the current interval to the merged list as a new non-overlapping interval.
Return the merged intervals:
After iterating through all intervals, the merged list will contain the merged non-overlapping intervals.
There was one coding question and after that the interviewer asked some questions related to python and data analysis using python, which I was not able to answer.
Minimum Number of Arrows to Burst Balloons
There are some spherical balloons taped onto a flat wall that represents the XY-plane. The balloons are represented as a 2D integer array points where points[i] = [xstart, xend] denotes a balloon whose horizontal diameter stretches between xstart and xend. You do not know the exact y-coordinates of the balloons.
Arrows can be shot up directly vertically (in the positive y-direction) from different points along the x-axis. A balloon with xstart and xend is burst by an arrow shot at x if xstart <= x <= xend. There is no limit to the number of arrows that can be shot. A shot arrow keeps traveling up infinitely, bursting any balloons in its path.
Given the array points, return the minimum number of arrows that must be shot to burst all balloon
Sort by End Point:
Sort the balloons based on their end points (xend). This helps in minimizing the number of arrows needed.
Greedy Approach:
Initialize arrow_count = 0 and last_shot_position = -∞.
Iterate through the sorted balloons:
If the current balloon starts after the last_shot_position, shoot a new arrow at the end of the current balloon (xend), and update last_shot_position to xend.
If the current balloon overlaps with the last shot arrow, no new arrow is needed.
Return the Arrow Count:
After processing all balloons, return arrow_count as the minimum number of arrows required.

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