i
Shiprocket Private
Limited
Filter interviews by
Count the number of islands in a given grid of '1's and '0's.
Iterate through the grid and for each '1' encountered, perform a depth-first search to mark all connected '1's as visited.
Increment the island count for each new island encountered.
Consider edge cases like grid boundaries and handling visited cells.
To find the next highest number, sort the numbers in ascending order and find the number immediately greater than the given number.
Sort the numbers in ascending order
Find the number immediately greater than the given number
Return the next highest number
Closure is a function that captures the variables from its surrounding scope, even after the surrounding function has finished executing.
Closure allows a function to access and manipulate variables from its outer scope.
It maintains a reference to its outer scope, even after the outer function has returned.
Closure is commonly used in event handlers and callbacks.
Change detection strategy in Angular is a mechanism used to detect changes in the application state and update the view accordingly.
Angular uses Zone.js for change detection by default
Change detection can be triggered manually using ChangeDetectorRef
Optimizing change detection using OnPush strategy
var is function scoped, let is block scoped, const is block scoped and cannot be reassigned.
var is function scoped, let is block scoped, const is block scoped and cannot be reassigned
var can be redeclared and updated, let can be updated but not redeclared, const cannot be redeclared or updated
Example: var x = 10; let y = 20; const z = 30;
Rxjs operators are used for handling asynchronous operations in reactive programming.
Map operator: transforms the items emitted by an Observable
Filter operator: emits only those items from an Observable that pass a specified condition
Merge operator: combines multiple Observables into one by merging their emissions
SwitchMap operator: switches to a new Observable each time it is emitted
DebounceTime operator: emits a...
I applied via Approached by Company and was interviewed in Sep 2024. There was 1 interview round.
var is function scoped, let is block scoped, const is block scoped and cannot be reassigned.
var is function scoped, let is block scoped, const is block scoped and cannot be reassigned
var can be redeclared and updated, let can be updated but not redeclared, const cannot be redeclared or updated
Example: var x = 10; let y = 20; const z = 30;
Closure is a function that captures the variables from its surrounding scope, even after the surrounding function has finished executing.
Closure allows a function to access and manipulate variables from its outer scope.
It maintains a reference to its outer scope, even after the outer function has returned.
Closure is commonly used in event handlers and callbacks.
Rxjs operators are used for handling asynchronous operations in reactive programming.
Map operator: transforms the items emitted by an Observable
Filter operator: emits only those items from an Observable that pass a specified condition
Merge operator: combines multiple Observables into one by merging their emissions
SwitchMap operator: switches to a new Observable each time it is emitted
DebounceTime operator: emits a valu...
Change detection strategy in Angular is a mechanism used to detect changes in the application state and update the view accordingly.
Angular uses Zone.js for change detection by default
Change detection can be triggered manually using ChangeDetectorRef
Optimizing change detection using OnPush strategy
I applied via Referral and was interviewed in Aug 2024. There were 2 interview rounds.
To find the next highest number, sort the numbers in ascending order and find the number immediately greater than the given number.
Sort the numbers in ascending order
Find the number immediately greater than the given number
Return the next highest number
Count the number of islands in a given grid of '1's and '0's.
Iterate through the grid and for each '1' encountered, perform a depth-first search to mark all connected '1's as visited.
Increment the island count for each new island encountered.
Consider edge cases like grid boundaries and handling visited cells.
Top trending discussions
I appeared for an interview before Apr 2021.
Round duration - 45 Minutes
Round difficulty - Medium
It was in the mid day and since I applied for a Frontend role the discussion was majorly around data structure and bit of Javascript.
The interviewer was helping and good listener.
You are provided with two sorted linked lists. Your task is to merge them into a single sorted linked list and return the head of the combined linked list.
...Merge two sorted linked lists into a single sorted linked list without using additional space.
Create a dummy node to start the merged list
Compare the values of the two linked lists and add the smaller value to the merged list
Move the pointer of the merged list and the pointer of the smaller value list
Continue this process until one of the lists is fully traversed
Append the remaining elements of the other list to the me...
Given an integer array arr
of size 'N' containing only 0s, 1s, and 2s, write an algorithm to sort the array.
The first line contains an integer 'T' representing the n...
Sort an array of 0s, 1s, and 2s in linear time complexity.
Use three pointers to keep track of 0s, 1s, and 2s while traversing the array.
Swap elements based on the values encountered to sort the array in-place.
Time complexity should be O(N) and space complexity should be O(1).
Round duration - 60 Minutes
Round difficulty - Medium
It was more of a in depth round on the framework I'm working on and problem solving.
The event loop is a mechanism in programming that allows for asynchronous execution of code.
The event loop is a key component in JavaScript's runtime environment, responsible for handling asynchronous operations.
It continuously checks the call stack for any pending tasks and executes them in a non-blocking manner.
The event loop ensures that the program remains responsive by allowing other code to run while waiting for ...
Output-based questions in JavaScript using browser APIs
Example 1: Write a script that uses the Geolocation API to display the user's current location on a map
Example 2: Create a program that uses the Web Audio API to play a sound when a button is clicked
Example 3: Develop a web page that uses the Canvas API to draw a simple animation
Designing a system to support localization in a mobile app
Use resource files to store localized strings for different languages
Implement a language selection feature for users to choose their preferred language
Utilize localization libraries or frameworks to streamline the process
Consider cultural differences when localizing content, such as date formats and currency symbols
Round duration - 75 Minutes
Round difficulty - Hard
It was more of a fitment/managerial round.
Didn't had any coding questions, but was asked more on approaches and optimisations.
Discussions on the project you have worked on.
To find the fastest 3 horses out of a group with 5 horses racing at a time, we can use a tournament style approach.
Divide the horses into groups of 5 and race them against each other. This will give you the fastest horse in each group.
Take the winners from each group and race them against each other. The top 3 horses in this final race will be the fastest 3 overall.
Keep track of the results and compare the timings to d...
To debug lag on a screen, analyze code, check for memory leaks, optimize rendering, and use profiling tools.
Analyze code to identify any inefficient algorithms or operations causing lag.
Check for memory leaks that could be impacting performance.
Optimize rendering by reducing the number of draw calls, optimizing shaders, and minimizing overdraw.
Use profiling tools like Xcode Instruments or Android Profiler to identify p...
The app I recently worked on is a social media platform for sharing photos and connecting with friends.
The app follows a client-server architecture, with the client being the mobile app and the server handling data storage and processing.
The client side is built using React Native for cross-platform compatibility.
The server side is implemented using Node.js with a MongoDB database for storing user data and photos.
The a...
Tip 1 : Get your JS fundamentals right (if applying for a Frontend role, https://javascript.info/ is a good start)
Tip 2 : Apart from preparing data structures, practise on the communication skills as well (prepare your introduction, be a good listener and on spot improvisation plays key roles)
Tip 1 : highlight projects related to the job profile in your resume and mention what was your contribution in them precisely in 1/2 lines.
Tip 2 : Include URLs to applications/projects that you have build and your achievements/blog (if any)
I appeared for an interview before Sep 2020.
Round duration - 60 Minutes
Round difficulty - Easy
A thief is planning to rob a store and can carry a maximum weight of 'W' in his knapsack. The store contains 'N' items where the ith item has a weight of 'wi' and a value of...
Yes, the 0/1 Knapsack problem can be solved using dynamic programming with a space complexity of not more than O(W).
Use a 1D array to store the maximum value that can be stolen for each weight capacity from 0 to W.
Iterate through each item and update the array based on whether including the item would increase the total value.
The final value in the array at index W will be the maximum value that can be stolen.
Given an array or list of integers 'ARR', identify the second largest element in 'ARR'.
If a second largest element does not exist, return -1.
ARR = [2,...
Find the second largest element in an array of integers.
Iterate through the array to find the largest and second largest elements.
Handle cases where all elements are identical.
Return -1 if a second largest element does not exist.
Round duration - 60 Minutes
Round difficulty - Easy
System Design Round
Design a scalable system for Twitter with key components and architecture.
Use microservices architecture for scalability and fault isolation.
Key components include user service, tweet service, timeline service, and notification service.
Use a distributed database like Cassandra for storing tweets and user data.
Implement a message queue like Kafka for handling real-time updates and notifications.
Use a caching layer like ...
Round duration - 30 Minutes
Round difficulty - Easy
It is just a formality
Tip 1 : System Design
Tip 2 : Practice questions from leetcode
Tip 3 : Have some projects.
Tip 1 : Mention what you know
Tip 2 : Good previous work to showcase
Deadlock is a situation in computing where two or more processes cannot proceed because each is waiting for the other to release resources.
Occurs in multi-threaded environments when processes hold resources and wait for others.
Example: Process A holds Resource 1 and waits for Resource 2, while Process B holds Resource 2 and waits for Resource 1.
Can lead to system inefficiency and unresponsiveness.
Deadlock detection and...
A Red-Black Tree is a balanced binary search tree with specific properties to ensure efficient operations.
Each node is colored either red or black.
The root node is always black.
Red nodes cannot have red children (no two reds in a row).
Every path from a node to its descendant leaves must have the same number of black nodes.
This structure ensures O(log n) time complexity for insertion, deletion, and search operations.
Exa...
Local minima in a 2-D array are elements smaller than their neighbors. We can find them using various algorithms.
A local minimum is defined as an element that is less than its adjacent elements.
For example, in the array [[9, 8, 7], [6, 5, 4], [3, 2, 1]], the element 1 is a local minimum.
To find local minima, iterate through each element and compare it with its neighbors (up, down, left, right).
Consider edge cases where...
I appeared for an interview in Apr 2021.
Round duration - 60 minutes
Round difficulty - Easy
The round consisted of 2 coding Problems and it lasted for 60 minutes from 12:00 PM to 1:00 PM on Hackerearth.
Use of other IDEs was prohibited and video was on.
You are provided with two strings A
and B
. Your task is to find the index of the first occurrence of A
within B
. If A
is not found in B
, return -1.
A = "bc", ...
Implement a function to find the index of the first occurrence of one string within another string.
Iterate through the second string and check if a substring of the same length as the first string matches the first string.
Return the index of the first occurrence of the first string within the second string, or -1 if not found.
Handle edge cases like empty strings or when the first string is longer than the second string...
Given a sorted array that has been rotated clockwise by an unknown amount, you need to answer Q
queries. Each query is represented by an integer Q[i]
, and you must ...
Search for integers in a rotated sorted array efficiently.
Implement binary search to find the target integer in the rotated array.
Handle the rotation by checking which side of the array is sorted before performing binary search.
Return the index of the target integer if found, else return -1.
Time complexity of O(logN) is required for each query.
Round duration - 60 minutes
Round difficulty - Medium
The round was conducted on Google Meet with 2 interviewers . They were friendly and helpful.
The timing was 12:00 to 1:00 PM.
Our Video was on .
You are given a string 'S' of length 'N' which may include duplicate alphabets. Your goal is to calculate the number of distinct subsequences in the string.
Calculate the number of distinct subsequences in a string with possible duplicates.
Use dynamic programming to keep track of the count of distinct subsequences for each character in the string.
Consider the cases where the current character is included or excluded in the subsequence.
Handle duplicates by considering the previous occurrence of the character.
Return the count of distinct subsequences modulo 10^9 + 7.
Round duration - 60 minutes
Round difficulty - Easy
This was a Behavioral Round. It lasted for 45-50 minutes. It consisted of a discussion on my projects. The interviewer was very impressed by the way I explained my projects. She even appreciated me for that. This was followed by normal HR questions .Timing of This round was 4:00 PM to 5:00 PM
Tip 1 : I prepared all topics from my Coding Ninjas Course - Competitive Programming
Tip 2 : I practiced 300+ questions on CodeZen ( Coding Ninjas Platform), LeetCode, InterviewBit
Tip 3 : I took part in contests on CodeForces.
Tip 4 : Apart from Data Structures and Algorithms , I also studied DBMS, OOPs and other course subjects
Tip 1 : Keep Resume up to date for the role you are applying.
Tip 2 : Mention atleast 1 project or past work experience.
Tip 3 : Try to keep a 1 pager resume.
Sorting of an array and aptitude
I appeared for an interview in Oct 2020.
Round duration - 90 minutes
Round difficulty - Medium
The test was conducted in the evening from 5:00 pm to 6:30 pm. Because of the covid situation, all the students attempted the test from their homes. But it was a webcam-based test to avoid any kind of cheating.
There were 3 coding problems to be done in 90 minutes.
After resume based shortlisting, 70 candidates were selected to appear for the test out of which 30 were shortlisted for interviews.
Determine if the third string contains all the characters from both the first and second strings in any order. If so, return "YES"; otherwise, return "NO".
Line ...
Check if the third string contains all characters from the first and second strings in any order.
Create a frequency map for characters in the first and second strings.
Check if all characters in the third string are present in the frequency map.
Ensure the count of characters in the third string matches the count in the frequency map.
Return 'YES' if all conditions are met, otherwise return 'NO'.
You are given a connected undirected unweighted graph comprising 'N' nodes and 'M' edges. In this graph, each pair of connected nodes is linked by exactly one undirected e...
Find the length of the shortest path visiting all nodes in a connected undirected unweighted graph.
Use Breadth First Search (BFS) to find the shortest path that visits all nodes at least once.
Maintain a bitmask to keep track of visited nodes and their states.
Consider all possible permutations of nodes to find the shortest path length.
Stark Industry is planning to organize meetings for various departments in preparation for Stark Expo. Due to limited rooms in Stark Tower, the goal is to alloca...
Determine the minimum number of conference rooms required for scheduling meetings.
Sort the meetings by start time.
Iterate through the meetings and keep track of rooms needed based on overlapping times.
Use a priority queue to efficiently allocate rooms.
Example: For meetings (1pm-4pm), (3pm-5pm), (4pm-6pm), 2 rooms are required.
Ensure linear time complexity by optimizing the room allocation process.
Round duration - 50 minutes
Round difficulty - Medium
This round started at 9 am and went till 4 pm.
Out of 70 students that appeared in online coding test, 30 were shortlisted for the first round (this round) of interviews.
In this round, everyone was asked one moderate level coding question. The interviewer provided the link to an IDE, where I wrote my code.
The interview started with the introduction being followed by 1 coding problem. In the end, the interviewer asked me if I wanted to ask any questions. To which I asked him my feedback so that I can improve my wear areas.
Of the 30 candidates, 17 were selected for the final interview round.
Given an array arr
containing 'N' distinct integers, your task is to generate all possible non-empty subsets of this array.
Note: While the elements within each subset should ...
Generate all possible non-empty subsets of an array of distinct integers.
Use recursion to generate all subsets by including or excluding each element in the array.
Maintain a current subset and add it to the result when reaching the end of the array.
Ensure elements within each subset are in increasing order.
Handle the input and output format as specified in the question.
Round duration - 50 minutes
Round difficulty - Easy
This was a technical + HR round. Started in the evening at 4:30 pm, this round went till 9:30 pm.
17 students were shortlisted for this final round of interview.
This interview was also virtual and involved both technical and HR-related questions. The interview started with an introduction and then questions based on my resume were asked.
Out of 17 candidates, 8 candidates got a full-time offer from Urban Company.
You are provided with a 2D matrix containing only the integers 0 or 1. The matrix has dimensions N x M, and each row is sorted in non-decreasing order. Your...
Find the row with the maximum number of 1's in a sorted 2D matrix.
Iterate through each row of the matrix and count the number of 1's in each row.
Keep track of the row index with the maximum number of 1's seen so far.
Return the index of the row with the maximum number of 1's.
If multiple rows have the same number of 1's, return the row with the smallest index.
Tip 1 : Coding Problems are asked from DSA, so a good practice of standard problems is a must. Revisit these problems before the interview to ace and crack the interview.
Tip 2 : To tackle the conceptual questions, you need to have thorough knowledge about the concepts, so to prepare for OS and DBMS, read one standard book.
Tip 3 : Have proper and clear knowledge about your project. Basic but tricky questions are asked based on the internship experience and the projects you have done.
Tip 1 : The best way to ace an interview is to take command of your interview in your hands. And this is done by having a balanced resume. Projects give direction to the interview and increase the probability of selection. So add at least 2 projects.
Tip 2 : Urban Company seeks team players and not just good coders. So add your achievements outside the academics to get shortlisted.
based on 4 interview experiences
Difficulty level
Duration
based on 4 reviews
Rating in categories
Software Engineer
179
salaries
| ₹10.6 L/yr - ₹19.1 L/yr |
Senior Specialist
101
salaries
| ₹4.6 L/yr - ₹10.5 L/yr |
Associate Manager
84
salaries
| ₹8 L/yr - ₹13.9 L/yr |
Senior Software Engineer
83
salaries
| ₹13.1 L/yr - ₹24.4 L/yr |
Key Account Manager
80
salaries
| ₹3.5 L/yr - ₹10.5 L/yr |
Pickrr
Udaan
Swiggy
CARS24