Summary
I interviewed with Housing.com on campus, where I tackled two coding problems with a follow-up, along with conceptual questions on DBMS. I managed to solve the coding challenges and discuss my projects effectively.
Full Experience
My on-campus interview at Housing.com began with a standard self-introduction. Following that, the interviewer presented two coding challenges which I had to solve and run in an IDE of my choice. The first question was exactly Best Time to Buy and Sell Stock II. As a follow-up, I was then asked to minimize the number of transactions while still maximizing profit.
The second coding problem was new to me. It involved transforming a binary tree based on a set of rules: assigning the leftmost node to a new parent, making the right sibling the new left child, and recursively applying the transformation to the right subtree. Although the rules felt a bit unclear initially, I was able to work through it and provide a solution.
After the coding segment, the discussion shifted to DBMS. I was questioned on various topics including Normalization (specifically 1NF, 2NF, etc.), the differences between SQL and NoSQL databases, and ACID properties.
Finally, the interview concluded with a detailed discussion about my projects and the technical stack I utilized in them.
Interview Questions (4)
You are given an integer array prices where prices[i] is the price of a given stock on the i-th day. Find the maximum profit you can achieve. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times). Note: You may not engage in multiple transactions simultaneously (i.e., you must sell the stock before you buy again).
As a follow-up to the standard "Best Time to Buy and Sell Stock II" problem, the interviewer asked me to modify the solution to minimize the number of transactions performed while still achieving the maximum possible profit.
I was asked to transform a binary tree based on a specific set of rules:
- Assign the leftmost node to a new parent.
- Make the right sibling the new left child.
- Recursively apply the transformation to the right subtree.
The problem statement was a little unclear, but I eventually managed to solve it.
I was asked a series of questions related to Database Management Systems, including:
- Normalization (specifically 1NF, 2NF, etc.)
- Differences between SQL and NoSQL databases
- ACID properties