Summary
I interviewed for an SDE-1 role at Mindtickle, where I successfully solved two data structures and algorithms problems involving greedy approaches, priority queues, and sliding window techniques, but ultimately was not shortlisted.
Full Experience
I recently went through an SDE-1 DSA interview round at Mindtickle. This round involved two algorithmic questions designed to assess my problem-solving skills, understanding of data structures, and my ability to optimize for time and space complexity. I solved both questions within the allotted time and discussed their expected time and space complexities. However, even after solving both problems, I was not shortlisted further, and no proper feedback was provided.
Interview Questions (2)
You're on a hiking expedition across a series of hills, represented by an array elevations, where each element indicates the height of a hill. Starting from hill 0, your objective is to travel as far as possible using a limited number of grappling hooks and a stockpile of climbing gear units.
Movement Rules:
To move from hill i to hill i + 1:
- If the next hill is at the same height or lower, you can walk without using any equipment.
- If the next hill is higher, you must either:
- Use one grappling hook, or
- Spend a number of climbing gear units equal to the elevation gain:
(elevations[i+1] - elevations[i]). You may choose when to use grappling hooks or climbing gear. The objective is to plan your resource usage wisely to reach the farthest hill possible.
Function Signature:
int furthestHillIndex(vector<int>& elevations, int climbing_gears, int grappling_hook);
Sample Inputs & Expected Outputs:
- Input:
elevations = [4,2,7,6,9,14,12], climbing_gears = 5, grappling_hook = 1Output:4 - Input:
elevations = [14,3,19,3], climbing_gears = 17, grappling_hook = 0Output:3 - Input:
elevations = [3,11,7,11,15], climbing_gears = 8, grappling_hook = 1Output:4
You are given a string S consisting only of the characters 'A', 'B', 'C', and 'D'. The length of the string is always a multiple of 4 (i.e., length = 4 * N for some positive integer N).
A string is considered balanced if every character 'A', 'B', 'C', and 'D' appears exactly N times.
Your task is to find the minimum length of a contiguous substring that can be replaced with any arbitrary sequence (of the same length) such that the entire string becomes balanced.
Function Signature:
int minSubstringToBalance(string s);
Objective:
Identify the shortest substring to replace, so that the final string has an equal number of each character, i.e., count('A') = count('B') = count('C') = count('D') = N.
Sample Inputs & Expected Outputs:
- Input:
"AAAABBCD"Output:2(Replace"AA"with"CD") - Input:
"ABBBADAA"Output:3 - Input:
"BACD"Output:0(Already balanced)
Summary
I successfully navigated a five-round interview process for the SDE Intern (Backend) position at Mindtickle, which included an online assessment, two technical coding rounds, a hiring manager discussion focused on projects and system design, and a final HR round. I am delighted to share that I received an offer for the internship.
Full Experience
I recently had my interview experience for the SDE Intern (Backend) position at Mindtickle, with the process taking place over 4-5 days in the last week of May 2024. The location was for their Pune / Bengaluru offices.
Round 1: Online Assessment (1 hr 30 mins)
This round consisted of 3 DSA questions, which I found to be of similar difficulty to LeetCode mediums, and 5 MCQs. The topics covered were Hashing, Binary Trees, and Dynamic Programming. I managed to complete the assessment within 60-65 minutes.
Round 2: Interview Vector - Problem Solving Round (60 minutes)
The interviewer began with an introduction, followed by my self-introduction. We then spent about 15 minutes discussing my resume and projects. This was followed by two DSA problems.
- A stack-based problem utilizing the concept of next greater/smaller element. I presented both the brute-force and optimized approaches, discussing their time and space complexities.
- A BFS problem on a matrix. For this, I directly jumped into coding the optimized approach after a brief discussion, and then discussed its time and space complexities.
Round 3: First Technical Discussion (60 minutes)
This round also started with introductions, and the interviewer was an SDE-3. We spent 20-25 minutes discussing my projects, and I was asked to sketch rough schemas in MySQL for a given scenario. Following this, I was given a DSA problem that involved a greedy algorithm and priority queues. I discussed my approach with a dry run and then coded it, elaborating on the time and space complexities. As a follow-up, I was asked to implement a min-heap from scratch, which I successfully did, and answered a few questions related to it.
Round 4: Hiring Manager Round (45 minutes)
After introductions, I gave a brief demo of one of my hosted projects. The manager then deep-dived into the project, asking cross-questions and posing situational challenges on how I would remodel my project under different conditions. These were followed by general situational questions about how I would react. Later, I was asked to provide a brief approach to design Google News, including follow-up discussions and my opinions. The interviewer also gave me an overview of Mindtickle's work and the teams I might expect to join.
Round 5: HR Round (30 minutes + Offer discussion)
This round lasted about 30 minutes. I was asked about my knowledge of Mindtickle, its values, and recent achievements. This was followed by several behavioral questions. At the end, I was informed that I was selected and the offer details, date of joining, and other specifics were laid out.
I am happy to share that the verdict was: Selected.
Interview Questions (3)
A problem based on stacks, requiring the application of the 'next greater' or 'next smaller' element concept. I was asked to provide both a brute-force and an optimized approach, followed by a discussion on time and space complexities.
A follow-up task where I was asked to implement a min heap data structure from scratch. This involved understanding heap properties and implementing insertion, deletion, and heapify operations.
I was asked to give a brief approach on how I would design Google News. This involved discussing the high-level architecture and key components. The interviewer provided follow-up questions and asked for my opinions on certain design choices.
Preparation Tips
My preparation involved extensive practice of Data Structures and Algorithms, covering topics like Hashing, Binary Trees, Dynamic Programming, Greedy algorithms, and Priority Queues, which proved essential for tackling the technical rounds. I also dedicated considerable time to thoroughly review my projects, anticipating in-depth discussions and cross-questions based on my resume. Furthermore, I focused on understanding system design fundamentals, which was crucial for the hiring manager's design question. For the HR round, I researched the company's background, values, and recent achievements to be well-prepared.