Interview Experience | ZOHO | Software Developer
Summary
I recently interviewed at Zoho for a Software Developer role, which involved several technical rounds including aptitude, coding, and a final technical interview. Unfortunately, I was rejected after the last round.
Full Experience
I went through several rounds for a Software Developer position at Zoho.
Round 1: Aptitude & Programming
This round had 10 aptitude and 10 programming questions. The difficulty was generally easy to intermediate, and I found them solvable within the one-hour time limit.Round 2: Coding Questions
This was an intensive coding round lasting 3-4 hours, featuring 5-7 questions. I recall being asked about Chocolate Distribution, Diagonal Traversal, Group Anagrams, Meeting Room Allocation, and Word Pattern. Typically, solving 4 or 5 problems is sufficient to progress. The difficulty ranged from intermediate to hard.Round 3: Low-Level Design / Coding
Zoho usually focuses on Low-Level Design here, but in my case, they presented two hard-level matrix-based coding problems. I managed to solve both and successfully advanced to the next stage. This round took me about 2-3 hours.Round 4: Technical Interview
The final technical interview started with my self-introduction. I was then asked about the 3Sum problem, including its time complexity, how to traverse a 2D array without recursion (requiring logic implementation), and how to check if a Linked List is circular (again, writing the logic). We also discussed BFS vs DFS, both with and without recursion. Finally, there were several questions related to my projects, mainly focusing on code aspects. I felt I wasn't fully prepared for this round.Interview Questions (9)
Given N number of chocolates, where each chocolate has a different price/value, and M number of students, distribute M chocolates to M students such that the difference between the maximum and minimum price/value of chocolates given to students is minimum. Each student gets only one chocolate.
Given a matrix or a binary tree, traverse its elements in a diagonal order.
Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
Given an array of meeting time intervals intervals where intervals[i] = [start_i, end_i], return the minimum number of conference rooms required.
Given a pattern and a string s, find if s follows the same pattern. Here 'follows' means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s.
Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0. The solution also requires discussion of its time complexity.
Explain and write logic for traversing a 2D array without using recursion. This usually implies an iterative approach like row-major or column-major order.
Explain and write logic to determine if a given singly linked list contains a cycle (is circular).
Compare Breadth-First Search (BFS) and Depth-First Search (DFS) algorithms. Discuss their implementation details, including approaches with and without recursion, and their respective use cases and complexities.