
Housing.com


30+ Housing.com Software Engineer Interview Questions and Answers
Q1. Subarray Challenge: Largest Equal 0s and 1s
Determine the length of the largest subarray within a given array of 0s and 1s, such that the subarray contains an equal number of 0s and 1s.
Input:
Input begins with...read more
Find the length of the largest subarray with equal number of 0s and 1s in a given array.
Iterate through the array and maintain a count of 0s and 1s encountered so far.
Store the count difference in a hashmap with the index as key.
If the same count difference is encountered again, the subarray between the two indices has equal 0s and 1s.
Q2. Given two sides of a river having the same cities labeled in characters. Bridges are to be drawn from one side to another that can connect the same labels but the bridges shudnt cross each other. Find the max n...
read moreThe maximum number of bridges that can be connected between two sides of a river without crossing each other.
This is a dynamic programming problem.
Create a 2D array to store the maximum number of bridges that can be connected at each position.
Initialize the first row and column of the array with 0.
Iterate through the sides of the river and compare the labels.
If the labels match, update the value in the array by adding 1 to the diagonal element.
If the labels don't match, take ...read more
Q3. Connect Nodes at the Same Level
Given a binary tree where each node has at most two children, your task is to connect all adjacent nodes at the same level. You should populate each node's 'next' pointer to its ...read more
Connect adjacent nodes at the same level in a binary tree by populating each node's 'next' pointer.
Traverse the tree level by level using a queue.
For each node, connect it to the next node in the queue.
If there is no next node, set the 'next' pointer to NULL.
Q4. Find Duplicate in Array Problem Statement
You are provided with an array of integers 'ARR' consisting of 'N' elements. Each integer is within the range [1, N-1], and the array contains exactly one duplicated el...read more
Find the duplicate element in an array of integers.
Iterate through the array and keep track of seen elements using a set or hashmap.
If an element is already in the set, it is the duplicate element.
Return the duplicate element once found.
Q5. Sum Root to Leaf Numbers
You are given an arbitrary binary tree consisting of N nodes, each associated with an integer value from 1 to 9. Each root-to-leaf path can be considered a number formed by concatenatin...read more
Calculate the total sum of all root to leaf paths in an arbitrary binary tree.
Traverse the tree from root to leaf nodes, keeping track of the current path sum.
Add the current node value to the path sum and multiply by 10 for each level.
When reaching a leaf node, add the final path sum to the total sum.
Return the total sum modulo (10^9 + 7) as the final result.
Q6. The Skyline Problem
Compute the skyline of given rectangular buildings in a 2D city, eliminating hidden lines and forming the outer contour of the silhouette when viewed from a distance. Each building is descri...read more
Compute the skyline of given rectangular buildings in a 2D city, eliminating hidden lines and forming the outer contour of the silhouette.
Iterate through the buildings and create a list of critical points (x, y) where the height changes.
Sort the critical points based on x-coordinate and process them to form the skyline.
Merge consecutive horizontal segments of equal height into one to ensure no duplicates.
Return the final list of key points representing the skyline.
Example: Fo...read more
Q7. Word Break Problem Statement
You are provided with a continuous non-empty string (referred to as 'sentence') which contains no spaces and a dictionary comprising a list of non-empty strings (known as 'words'). ...read more
Given a dictionary of words and a continuous string, generate all possible sentences by inserting spaces.
Iterate through the continuous string and check all possible substrings to see if they are in the dictionary.
Use recursion to generate all possible sentences by inserting spaces at different positions.
Return the valid sentences formed using the words from the dictionary.
Q8. Count Inversions Problem Statement
Given an integer array ARR
of size N
, your task is to find the total number of inversions that exist in the array.
An inversion is defined for a pair of integers in the array ...read more
Count the total number of inversions in an integer array.
Iterate through the array and for each pair of indices, check if the conditions for inversion are met.
Use a nested loop to compare each pair of elements in the array.
Keep a count of the inversions found and return the total count at the end.
Q9. Add Two Numbers Represented as Linked Lists
Given two linked lists representing two non-negative integers, where the digits are stored in reverse order (i.e., starting from the least significant digit to the mo...read more
Add two numbers represented as linked lists in reverse order and return the sum as a linked list.
Traverse both linked lists simultaneously while keeping track of carry.
Create a new linked list to store the sum digits.
Handle cases where one list is longer than the other.
Remember to consider the carry in the last step of addition.
Q10. Word Ladder Problem Statement
Given two strings, BEGIN
and END
, along with an array of strings DICT
, determine the length of the shortest transformation sequence from BEGIN
to END
. Each transformation involves ...read more
The Word Ladder problem involves finding the shortest transformation sequence from one word to another by changing one letter at a time.
Use breadth-first search to find the shortest transformation sequence.
Create a graph where each word is a node and edges connect words that differ by one letter.
Keep track of visited words to avoid cycles and optimize the search process.
Return -1 if no transformation sequence is possible.
Example: For input 'hit', 'cog', and dictionary ['hot',...read more
Q11. Ninja and Sorted Array Merging Problem
Ninja is tasked with merging two given sorted integer arrays ARR1
and ARR2
of sizes 'M' and 'N', respectively, such that the merged result is a single sorted array within ...read more
Merge two sorted arrays into one sorted array within the first array.
Create a pointer for the end of each array to compare and merge elements.
Start from the end of the first array and compare elements from both arrays to merge.
Continue merging elements until all elements from the second array are merged into the first array.
Q12. Shortest Bridge Problem Statement
Two characters, Tony Stark and Thanos, reside on two separate islands within a 2-D binary matrix of dimensions N x M. Each matrix cell has a value of either 1 (land) or 0 (wate...read more
The task is to find the shortest path of transformed 0s that connects two islands in a 2-D binary matrix.
Identify the two islands in the matrix as distinct connected components of 1s.
Construct a bridge by converting some 0s to 1s to connect the two islands.
Output the minimal length of the bridge needed to connect the two islands for each test case.
Q13. Fixing a Swapped Binary Search Tree
Given a Binary Search Tree (BST) where two nodes have been swapped by mistake, your task is to restore or fix the BST without changing its structure.
Input:
The first line of...read more
Restore a Binary Search Tree by fixing two swapped nodes without changing its structure.
Identify the two swapped nodes by performing an inorder traversal of the BST.
Swap the values of the two identified nodes.
Perform another inorder traversal to restore the BST structure.
Ensure no extra space is used other than the recursion stack.
Q14. Count Ways to Reach the N-th Stair Problem Statement
You are provided with a number of stairs, and initially, you are located at the 0th stair. You need to reach the Nth stair, and you can climb one or two step...read more
The problem involves determining the number of distinct ways to climb from the 0th to the Nth stair, with the ability to climb one or two steps at a time.
Use dynamic programming to solve this problem efficiently.
Consider the base cases where N=0 and N=1 separately.
For N>1, the number of ways to reach the Nth stair is the sum of the number of ways to reach the (N-1)th stair and the number of ways to reach the (N-2)th stair.
Apply modulo 10^9+7 to avoid overflow issues.
Example: ...read more
Q15. Overlapping Intervals Problem Statement
You are given the start and end times of 'N' intervals. Write a function to determine if any two intervals overlap.
Note:
If an interval ends at time T and another interv...read more
Determine if any two intervals overlap based on start and end times.
Iterate through intervals and check for any overlapping intervals
Consider edge cases where intervals end and start at the same time
Return true if any two intervals overlap, otherwise false
Q16. Given a set of n steps. A person can climb one or two steps at a time. Find the number of ways in which one can reach the nth step. (Easy stuff.. I probably wasn't doing good by this time)
The number of ways to reach the nth step using 1 or 2 steps at a time.
Use dynamic programming to solve this problem
Create an array to store the number of ways to reach each step
Initialize the first two elements of the array as 1, since there is only one way to reach the first and second steps
For each subsequent step, the number of ways to reach it is the sum of the number of ways to reach the previous two steps
Return the value at the nth index of the array
The Josephus problem involves eliminating every k-th person in a circle until only one person remains.
Create a circular linked list to represent the circle of people.
Iterate through the list and eliminate every k-th person.
Repeat the process until only one person remains.
The position of the last person standing can be calculated using a mathematical formula.
Q18. Make a set of all nodes that can occur in any path from a source to a destination in both directed as well as undirected graph. Note that a node can be visited any number of times not necessarily only once.
The set of all nodes that can occur in any path from a source to a destination in both directed and undirected graphs.
Perform a depth-first search (DFS) or breadth-first search (BFS) from the source node to the destination node.
During the search, keep track of all visited nodes.
Add each visited node to the set of nodes that can occur in any path.
Repeat the search for both directed and undirected graphs.
The resulting set will contain all nodes that can occur in any path from t...read more
Q19. Given many pairs intervals with their start and end. Find the maximum interval which intersects the maximum number of intervals. Look for corner cases again!
Find the maximum interval that intersects the maximum number of intervals.
Sort the intervals based on their start times.
Iterate through the sorted intervals and keep track of the current interval with the maximum number of intersections.
Update the maximum interval whenever a new interval intersects more intervals than the current maximum interval.
Q20. Given two sorted arrays find of size n and m. The n sized array has m spaces empty at the end. Code to merge these to arrays in single pass O(n+m).
Merge two sorted arrays with empty spaces at the end in a single pass.
Initialize two pointers at the end of each array
Compare the elements at the pointers and place the larger element at the end of the merged array
Decrement the pointer of the array from which the larger element was taken
Repeat until all elements are merged
Use a combination of weighing and counting to identify coins of different denominations.
Separate coins by weight to identify different denominations (e.g. pennies, nickels, dimes, quarters)
Count the number of each denomination to confirm the identification
Use a scale to measure weight differences between coins
Implement Ctrl+F functionality in a file using string search algorithms.
Read the file content into a string variable
Implement a string search algorithm like Knuth-Morris-Pratt or Boyer-Moore
Allow user input for the search query and display the results
Q23. Given a binary tree. Code to have each node point to the next node in the same level. Last element in the level must point to NULL
The code should traverse the binary tree level by level and update the next pointers accordingly.
Use a queue to perform level order traversal of the binary tree.
For each node, update its next pointer to point to the next node in the queue.
If the current node is the last node in the level, update its next pointer to NULL.
Function expression is assigned to a variable, while function declaration is hoisted to the top of the scope.
Function expression is not hoisted, while function declaration is hoisted.
Function expression can be anonymous, while function declaration must have a name.
Function expression can be assigned to a variable, while function declaration cannot.
The CSS position property defines the positioning method of an element.
Static: Default position, elements are positioned according to the normal flow of the document.
Relative: Positioned relative to its normal position.
Absolute: Positioned relative to the nearest positioned ancestor.
Fixed: Positioned relative to the viewport, does not move when the page is scrolled.
Sticky: Acts like a combination of relative and fixed positioning.
Q26. Implement a ctlr+f (find) functionality in a file. Make a data structure for this implementation
Implement a ctlr+f (find) functionality in a file using a data structure.
Create a data structure to store the file content, such as an array of strings.
Implement a function that takes a search query and returns the matching lines from the file.
Use string matching algorithms like Knuth-Morris-Pratt or Boyer-Moore for efficient searching.
Consider optimizing the data structure for faster search operations, like using a trie or a hash table.
SassScript supports data types like numbers, strings, colors, booleans, lists, and maps.
Numbers: Can be integers or decimals, with or without units (e.g. 10, 2.5px)
Strings: Can be enclosed in single or double quotes (e.g. 'Hello', "World")
Colors: Represented in various formats like hex, RGB, or named colors (e.g. #FF0000, rgb(255, 0, 0), red)
Booleans: Represented as true or false values
Lists: Ordered collection of values separated by commas (e.g. 1, 2, 3)
Maps: Key-value pairs...read more
Sockets allow real-time bidirectional communication between client and server, while Ajax enables asynchronous communication for updating parts of a web page without reloading.
Sockets provide a continuous connection for real-time data exchange, while Ajax makes asynchronous requests to update specific parts of a web page.
Sockets are commonly used in applications requiring real-time updates like chat applications, online gaming, and live streaming, while Ajax is used for fetch...read more
Grunt modules or plugins are extensions that provide additional functionality to the Grunt task runner.
Grunt modules or plugins are used to automate tasks in web development.
They can be used for tasks like minification, compilation, unit testing, etc.
Examples of Grunt plugins include grunt-contrib-uglify for minifying JavaScript files and grunt-sass for compiling Sass files.
Q30. Use of position relative,absolute,fixed and static
Position property in CSS
position: static is the default value
position: relative is relative to its normal position
position: absolute is relative to the nearest positioned ancestor
position: fixed is relative to the viewport
A server is a computer or software that provides functionality for other programs or devices, typically over a network.
A server receives requests from clients and processes them to provide the requested services or data.
Servers can host websites, store files, manage databases, or perform other specialized tasks.
Examples of servers include web servers like Apache or Nginx, database servers like MySQL or PostgreSQL, and file servers like FTP or NFS.
Servers often run continuousl...read more
Q32. How the server works?
A server is a computer program that provides services to other computer programs or clients over a network.
A server listens for incoming requests from clients
It processes the requests and sends back the response
Servers can be dedicated or shared
Examples include web servers, email servers, and file servers
Q33. Why use node?
Node is a popular server-side JavaScript runtime environment.
Node is fast and efficient for handling I/O operations.
It has a large and active community with a vast number of modules available.
Node allows for easy scalability and can handle a large number of concurrent connections.
It is cross-platform and can run on various operating systems.
Node is commonly used for building real-time applications, APIs, and microservices.
Q34. Sockets vs Ajax
Sockets and Ajax are both used for real-time communication, but sockets are more efficient for continuous data transfer.
Sockets provide a persistent connection between client and server, while Ajax uses HTTP requests.
Sockets are faster and more efficient for real-time data transfer.
Ajax is better suited for occasional data updates or small amounts of data.
Examples of socket-based applications include chat rooms and online gaming.
Examples of Ajax-based applications include soc...read more
More about working at Housing.com





Top Software Engineer Interview Questions from Similar Companies








Reviews
Interviews
Salaries
Users/Month

