[go: up one dir, main page]

0% found this document useful (0 votes)
43 views17 pages

MAQ Software Recruitment Preparation Guide

MAQ Software is a technology solutions company that emphasizes problem-solving and programming skills in its rigorous recruitment process. The hiring process includes multiple rounds: an online assessment, two technical interviews, and a managerial/HR interview, each focusing on different skill sets. Preparation tips include practicing coding, understanding core computer science subjects, and effectively communicating during interviews.

Uploaded by

kg8028769
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views17 pages

MAQ Software Recruitment Preparation Guide

MAQ Software is a technology solutions company that emphasizes problem-solving and programming skills in its rigorous recruitment process. The hiring process includes multiple rounds: an online assessment, two technical interviews, and a managerial/HR interview, each focusing on different skill sets. Preparation tips include practicing coding, understanding core computer science subjects, and effectively communicating during interviews.

Uploaded by

kg8028769
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

📘 MAQ Software Recruitment Preparation Guide

🏢 About MAQ Software


MAQ Software is a technology solutions company known for working on Microsoft platforms
including Azure, Power BI, and AI/ML. The recruitment process is rigorous and focuses heavily
on problem-solving, programming skills, and system design.

📌 Hiring Process Overview (Round-wise)


1. Online Assessment (Coding + Aptitude)

●​ Duration: 90–120 minutes​

●​ Platform: HackerRank / Mettl / Codility​

●​ Content:​

○​ Coding Questions (2–3): Data Structures and Algorithms​

○​ Aptitude & Logical Reasoning​

○​ Basic CS MCQs (DBMS, OS, Networks, OOPs)​

✅ Sample Questions:
●​ Find the longest palindromic substring in a given string.
●​ Sort 0 1 2
●​ Maximum Subarray Sum
●​ Detect and Remove Loop
●​ Count distinct substrings
●​ Nth Element Of Modified Fibonacci Series
●​ Permutations of a given string
●​ Non Repeating Character
●​ Spirally traversing a matrix
●​ Finding middle element in a linked list
●​ Queue using two Stacks
●​ Insertion Sort
●​ Detect a cycle in a linked list.
●​ SQL query: Retrieve top 3 salaries per department.
●​ Aptitude: Time, speed, distance, probability, puzzles.​

2. Technical Interview 1 (DSA + Core CS Concepts)

●​ Duration: 45–60 minutes​

●​ Mode: Virtual or On-site​

●​ Focus: Hands-on coding, debugging, basic CS fundamentals.​

✅ Sample Questions:
●​ Implement LRU Cache.​

●​ Explain TCP vs UDP with real-life examples.​

●​ Code a function to reverse a linked list recursively.​

●​ What is normalization in DBMS? Write a query with JOIN.​

3. Technical Interview 2 (Advanced Coding + System Design Basics)

●​ Duration: 45–60 minutes​

●​ Focus: Deeper algorithmic problems + low-level system design.​

✅ Sample Questions:
●​ Design a URL shortening service (like bit.ly).​

●​ Explain how a HashMap works internally.​


●​ Code a sliding window maximum.​

●​ Discuss REST API status codes.​

4. Managerial/HR Interview

●​ Duration: 30–45 minutes​

●​ Focus: Personality, communication, decision-making, past project discussion, company


fit.​

✅ Sample Questions:
●​ Tell me about a challenging project you worked on.​

●​ How do you prioritize multiple tasks?​

●​ Why MAQ Software?​

●​ Are you open to relocation and working in a fast-paced environment?​

📘 Preparation Tips
💻 Coding
●​ Practice DSA regularly on platforms like LeetCode, GeeksforGeeks, and HackerRank.​

●​ Focus on arrays, strings, linked lists, trees, dynamic programming, and hash maps.​

📚 Core CS Subjects
●​ DBMS: Normalization, indexing, SQL queries​

●​ OS: Processes, threads, deadlock, memory management​


●​ Networks: OSI model, protocols, IP vs TCP vs UDP​

●​ OOPs: Inheritance, polymorphism, interfaces, abstract classes​

🗣️ Communication
●​ Practice clear, concise explanations.​

●​ Structure answers using the STAR method (Situation, Task, Action, Result).​

📄 Resume
●​ Keep it one page, with strong emphasis on projects and internships.​

●​ Mention quantifiable results and technologies used.​

Few Previously Asked coding question


(find the solution @: https://www.interviewbit.com/maq-interview-questions/)

You have been given two integers ‘X’ and ‘Y’ which are the first two integers of a series and an
integer ‘N’. You have to find the Nth number of the series using the Fibonacci rule given by f(x) = f(x -
1) + f(x - 2).
The answer may be very large, return it after modulus 10 ^ 9 + 7.
Note:

The series is 1-based indexed.

1. Guess the data structure?

Given n number of rows containing data in this "cityname1 cityname2 distance" format and data is
redundant. You have to think about a data structure to store them efficiently.
1. Partition a string s in such a way that each of its substrings is a
palindrome. Return the minimal cuts required to split s into palindromes.
Example 1:

●​ Input: s = "aab"
●​ Output: 1
●​ Explanation: The palindrome partitioning ["aa","b"] could be produced using 1 cut.
Example 2:

●​ Input: s = "a"
●​ Output: 0
Example 3:

●​ Input: s = "ab"
●​ Output: 1

2. You are given an integer array digits as shown, where each digit of the
integers represented by an integer value. The digits are from most
significant to least significant in left-to-right order.
There are no leading 0's in the large integer. Increment it by one and return the array of
digits.

Example 1:

●​ Input: digits = [1,2,3]


●​ Output: [1,2,4]
●​ Explanation:
The array represents the integer 123.
Incrementing by one gives 123 + 1 = 124.
Thus, the result should be [1,2,4].
Example 2:

●​ Input: digits = [4,3,2,1]


●​ Output: [4,3,2,2]
●​ Explanation:
The array represents the integer 4321.
Incrementing by one gives 4321 + 1 = 4322.
Thus, the result should be [4,3,2,2].

3. Given a sorted array of distinct integers, return the index if the target
value is found, or if not, the index where the value would be inserted in
order. An algorithm with O(log n) runtime must be written to handle it.
Example 1:

●​ Input: nums = [1,3,5,6], target = 5


●​ Output: 2
Example 2:

●​ Input: nums = [1,3,5,6], target = 2


●​ Output: 1
Example 3:

●​ Input: nums = [1,3,5,6], target = 7


●​ Output: 4

4. Return the median of the two sorted arrays given two arrays of size m
and n, nums1 and nums2, respectively. It is recommended that the run-time
complexity be O(log (m+n)).
Example 1:
Input: nums1 = [1,3], nums2 = [2]​
Output: 2.00000​
Explanation: merged array = [1,2,3] and median is 2.

Example 2:

Input: nums1 = [1,2], nums2 = [3,4]​


Output: 2.50000​
Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.

5. An array of k linked-list lists is provided to you; each linked-list is


arranged in ascending order. Create one sorted linked list out of the
combined linked lists, then return it.
Example 1:

●​ Input: lists = [[1,4,5],[1,3,4],[2,6]]


●​ Output: [1,1,2,3,4,4,5,6]
●​ Explanation:
The linked lists are:
[
1->4->5,
1->3->4,
2->6
]
merging them into one sorted list: 1->1->2->3->4->4->5->6

6. Return the updated list after inverting the list's nodes k at a time, starting
with the linked list's head. Positive integer k must be less than or equal to
the linked list's length.
The remaining nodes should, in the end, remain how they are if the number of nodes is
not a multiple of k. Only the nodes themselves may be modified; the list's nodes' values
may not be changed.

Example 1:

●​ Input: head = [1,2,3,4,5], k = 2


●​ Output: [2,1,4,3,5]
Example 2:

●​ Input: head = [1,2,3,4,5], k = 3


●​ Output: [3,2,1,4,5]
7. The smallest missing positive integer should be returned from an
unsorted integer array called nums. You must build an algorithm that
requires constant additional space and runs in O(n) time.
Example 1:

●​ Input: nums = [1,2,0]


●​ Output: 3
Example 2:

●​ Input: nums = [3,4,-1,1]


●​ Output: 2
Example 3:

●​ Input: nums = [7,8,9,11,12]


●​ Output: 1

8. Determine how much water a given set of n non-negative integers


representing an elevation map, where each bar's width is 1, can hold after a
rainstorm.

Example 1:
●​ Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]
●​ Output: 6
●​ Explanation: The above elevation map (black section) is represented by array
[0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being
trapped.
Example 2:

●​ Input: height = [4,2,0,3,2,5]


●​ Output: 9

9. Return the smallest window substring of s such that every character in t


(including duplicates) is contained in the window, given two strings s and t
of lengths m and n, respectively.
Return the void string "if there is no such substring." The test cases will be created so
that each test case yields a distinct answer. A continuous group of characters within the
string is referred to as a substring.

Example 1:

●​ Input: s = "ADOBECODEBANC", t = "ABC"


●​ Output: "BANC"
●​ Explanation: The minimum window substring "BANC" includes 'A', 'B', and 'C'
from string t.
Example 2:

●​ Input: s = "a", t = "a"


●​ Output: "a"
●​ Explanation: The entire string s is the minimum window.
Example 3:
●​ Input: s = "a", t = "aa"
●​ Output: ""
●​ Explanation: ​
Both 'a's from t must be included in the window.​
Since the largest window of s only has one 'a', return empty string.

10. An array of prices is provided to you, where prices[i] represents the


price of a certain stock on the ith day. Determine the highest profit you can
make. You can only execute two transactions at once.
Note: You may not do more than one transaction at once (i.e., you must sell the stock
before you buy again).

Example 1:

●​ Input: prices = [3,3,5,0,0,3,1,4]


●​ Output: 6
●​ Explanation: ​
Buy on day 4 (price = 0) and sell on day 6 (price = 3), profit = 3-0 = 3.​
Then buy on day 7 (price = 1) and sell on day 8 (price = 4), profit = 4-1 = 3.
Example 2:

●​ Input: prices = [1,2,3,4,5]


●​ Output: 4
●​ Explanation: ​
Buy on day 1 (price = 1) and sell on day 5 (price = 5), profit = 5-1 = 4.​
Note that you cannot buy on day 1, buy on day 2 and sell them later, as you are
engaging multiple transactions at the same time. You must sell before buying
again.
Example 3:
●​ Input: prices = [7,6,4,3,1]
●​ Output: 0
●​ Explanation: In this case, no transaction is done, i.e. max profit = 0.

11. What are the advantages of multi-programming, and what is it?


An operating system that allows multiple programmes to run on one CPU is known as a
multiprogramming operating system. You can discuss key differences between a
multiprogramming OS and other systems by highlighting key differences in terms of
operation. When you describe a scenario in which you used multi-programming to
benefit from its advantages, you can show your understanding of a system that might be
important to the interviewer.

12. If the head of a linked list contains a cycle, then determine


whether the list has one. It is possible to create a cycle in a linked list
by including nodes that are reachable again by following the next
pointer.
The index of the node to which the tail of the next pointer is connected is used to
determine whether there is a cycle. If there is not a cycle, then return true. Otherwise,
return false.

Example 1:

●​ Input: head = [3,2,0,-4], pos = 1


●​ Output: true
●​ Explanation: There is a cycle in the linked list, where the tail connects to the 1st
node (0-indexed).
Example 2:
●​ Input: head = [1,2], pos = 0
●​ Output: true
●​ Explanation: There is a cycle in the linked list, where the tail connects to the 0th
node.
Example 3:

●​ Input: head = [1], pos = -1


●​ Output: false
●​ Explanation: There is no cycle in the linked list.

13. Rotate the array by k steps to the right, considering the array as
non-negative.
Example 1:

●​ Input: nums = [1,2,3,4,5,6,7], k = 3


●​ Output: [5,6,7,1,2,3,4]
Explanation:
rotate 1 steps to the right: [7,1,2,3,4,5,6]​
rotate 2 steps to the right: [6,7,1,2,3,4,5]​
rotate 3 steps to the right: [5,6,7,1,2,3,4]

Example 2:

●​ Input: nums = [-1,-100,3,99], k = 2


●​ Output: [3,99,-1,-100]
Explanation:

rotate 1 steps to the right: [99,-1,-100,3]​


rotate 2 steps to the right: [3,99,-1,-100]

14. We want to sort the arrays nums in-place so that objects of the same
colour are adjacent, with the colours in order red, white, and blue.
To solve this problem, you must use the integers 0, 1, and 2 to represent the colours
red, white, and blue, respectively.

Example 1:

●​ Input: nums = [2,0,2,1,1,0]


●​ Output: [0,0,1,1,2,2]
Example 2:

●​ Input: nums = [2,0,1]


●​ Output: [0,1,2]

15. What is the difference between JAVA and C++?


C++ uses a compiler, whereas Java uses an interpreter and a compiler. C++ is able to
offer both operator overloading and method overloading, whereas Java only provides
method overloading. C++ supports new and deleted statements in order to manage
objects manually rather than relying on automatic garbage collection, whereas Java has
a built-in garbage collection mechanism. A structure can be created in C++ whereas
Java cannot.

16. What is BST? Give a real-life example.


A self-balancing BST (like the AVL and Red-Black-Trees) keeps its height constant by
balancing itself. These self-balancing BSTs maintain their heights as Log(n), which is
O(log n). Other operations that become Log(n) include searching, inserting, deleting,
flooring, Ceiling, Greater, and Lesser, among others. BST also allows data traversal in
O(n) time.

A binary search tree is employed to maintain sorted streams of data. For example, we
want to maintain the live data in sorted order of prices if we're getting online orders. We
would like to know how many items were purchased at a certain cost at any given time.
We would also like to know the maximum cost we are approaching. Using a
self-balancing binary search tree, we can implement a priority queue with extractMin()
or extractMax(). If we also support both extractMin() and extractMax(), we use a
Self-Balancing Binary Search Tree to do both operations O(Log n). A list of the smallest
elements on the right, the Smallest Greater Element on the right, and so on are all
examples of problems where a self-balancing BST is suitable.

17. What is Object-Oriented Programming?


In object-oriented languages such as Java and Python, classes and Objects are used to
form programs. Polymorphism, encapsulation, abstraction, and inheritance comprise the
four major building blocks of OOP. Other programming paradigms, such as procedural
programming, include sequences of instructions. Python and Java are multi-paradigm
languages that allow both OOP and procedural programming. OOP makes
programming simpler, quicker, more dynamic, and secure, irrespective of the paradigm
you choose. In addition, there is no controversy that OOP makes programming simpler
and quicker because it makes programming easier, faster, more dynamic, and more
secure. It is a huge reason that Java and Python are the world's most popular
programming languages today. It is fairly straightforward to understand these
Object-Oriented Programming paradigms, which are crucial to Java and Python or any
other object-oriented programming languages.

18. What is Inheritance and what is its purpose of it?


An object that can take on a set of characteristics from other classes of objects is called
inheritance in object-oriented programming. These characteristics are commonly
instance variables or member functions. A subclass is one that inherits these
characteristics from its ancestor. A superclass is one that it inherited. It may also be the
case that inheritance is implemented using code language features, but Simula was the
first language to do so. Inheritance is used to consolidate and re-utilize code. For
example, if the objects 'car,' 'truck,' and 'motorcycle' are subclasses of vehicle code can
be consolidated into a vehicle superclass. The subclasses receive this code and any
future modifications, automatically.

19. Discuss garbage collectors in Java?


It is the job of the garbage collector (GC) in the Java virtual machine (JVM) to delete
unused memory when a Java program requests it. Because memory is reclaimed
automatically by the JVM, Java application developers are not forced to free memory
objects that are no longer being used. The GC operation is based on the assumption
that objects used in Java code are short-lived and can be reclaimed immediately after
their creation. Because unreferenced objects are automatically removed from the heap
memory when GC is running, Java is memory efficient. It is no longer necessary to
manually deallocate memory in order to eliminate application-system problems.
Because GC eliminates certain types of application-program faults, for example, it
significantly reduces or eliminates certain types of problems.
20. Imagine a normal queue (push, peek, pop, and empty) but only
need two stacks to implement it. The MyQueue class must support all
queue functions (push, peek, pop, and empty). The push() method
pushes element x to the front of the queue.
The pop() method returns the front element. The peek() method checks to see if the
queue is empty. If it is, the empty() method returns true. If not, the method returns false.
The queue is empty if it is not.

Input:

["MyQueue", "push", "push", "peek", "pop", "empty"]


[[], [1], [2], [], [], []]
Output:

[null, null, null, 1, 1, false]

Few more links for preparation:

https://www.glassdoor.co.in/Interview/MAQ-Software-Interview-Questions-E157056.htm
https://www.naukri.com/code360/interview-bundle/maq-software

You might also like