Filter interviews by
Array is a collection of elements stored in contiguous memory locations while linked list is a collection of nodes linked by pointers.
Arrays have fixed size while linked lists can grow or shrink dynamically
Insertion and deletion is faster in linked lists than arrays
Accessing elements in arrays is faster than linked lists
Arrays are better for random access while linked lists are better for sequential access
Implement a stack using a linked list
Create a Node class with data and next pointer
Create a Stack class with top pointer
Push new nodes to the top of the stack
Pop nodes from the top of the stack
Check if the stack is empty before popping
BST stands for Binary Search Tree, a data structure used for efficient searching and sorting operations.
BST is a tree-like data structure where each node has at most two children.
The left child of a node contains a value less than the parent node, while the right child contains a value greater than the parent node.
BST allows for efficient searching and sorting operations with a time complexity of O(log n).
Examples...
An array of key-value pairs is the best data structure for a dictionary.
Use a hash table or a balanced tree to implement the dictionary.
Keys should be unique and immutable.
Values can be any data type.
Access time should be O(1) or O(log n) depending on the implementation.
Examples: Python's dict, Java's HashMap, C++'s unordered_map.
Program to check if a binary tree is a BST
Traverse the tree in-order and check if the values are in ascending order
Use a min-max range for each node to check if it satisfies the BST property
Recursively check if the left and right subtrees are BSTs
A linked list is used to store and manipulate a collection of data elements in a linear order.
Linked lists are commonly used in computer science for implementing data structures like stacks, queues, and hash tables.
They are also used in operating systems for managing memory allocation.
For example, a linked list can be used to implement a music playlist where each song is a node and the links between nodes represen...
Hashing is a technique to map data to a fixed-size table. Time complexity of searching a hash table is O(n) in worst case.
Hashing is used to store and retrieve data quickly
It uses a hash function to map data to a fixed-size table
In the best case, searching a hash table takes O(1) time
In the worst case, all the data maps to the same index and searching takes O(n) time
Collision resolution techniques like chaining an...
Array is a collection of elements stored in contiguous memory locations while linked list is a collection of nodes linked by pointers.
Arrays have fixed size while linked lists can grow or shrink dynamically
Insertion and deletion is faster in linked lists than arrays
Accessing elements in arrays is faster than linked lists
Arrays are better for random access while linked lists are better for sequential access
An array of key-value pairs is the best data structure for a dictionary.
Use a hash table or a balanced tree to implement the dictionary.
Keys should be unique and immutable.
Values can be any data type.
Access time should be O(1) or O(log n) depending on the implementation.
Examples: Python's dict, Java's HashMap, C++'s unordered_map.
Hashing is a technique to map data to a fixed-size table. Time complexity of searching a hash table is O(n) in worst case.
Hashing is used to store and retrieve data quickly
It uses a hash function to map data to a fixed-size table
In the best case, searching a hash table takes O(1) time
In the worst case, all the data maps to the same index and searching takes O(n) time
Collision resolution techniques like chaining and ope...
Implement a stack using a linked list
Create a Node class with data and next pointer
Create a Stack class with top pointer
Push new nodes to the top of the stack
Pop nodes from the top of the stack
Check if the stack is empty before popping
BST stands for Binary Search Tree, a data structure used for efficient searching and sorting operations.
BST is a tree-like data structure where each node has at most two children.
The left child of a node contains a value less than the parent node, while the right child contains a value greater than the parent node.
BST allows for efficient searching and sorting operations with a time complexity of O(log n).
Examples of a...
Top trending discussions
Function pointers can be shared across processes using inter-process communication mechanisms like shared memory, pipes, sockets, etc.
Function pointers can be stored in shared memory regions that are accessible by multiple processes.
Processes can communicate with each other using pipes or sockets and pass function pointers as arguments.
Remote Procedure Call (RPC) mechanisms can also be used to share function pointers a...
Binder is a mechanism for inter-process communication in Android.
Binder allows different processes to communicate with each other.
It is used for implementing Android's IPC (Inter-Process Communication) system.
Binder uses a client-server model where the client sends requests to the server and the server responds with the requested data.
It is used for sharing data between different components of an Android application.
Bi...
sysctrl is a system control utility used to manage system settings and configurations.
sysctrl is used to manage system settings and configurations such as network settings, power management, and hardware configurations.
It can be used to start, stop, and restart system services.
sysctrl is commonly used in Linux and Unix-based operating systems.
Examples of sysctrl commands include 'sysctrl -p' to reload all settings from...
Device tree is a data structure used to describe hardware components in a system and their interconnections.
Device tree is used in embedded systems to provide a standardized way of describing hardware components.
It is written in a language called Device Tree Source (DTS) and compiled into a binary format called Device Tree Blob (DTB).
The device tree is loaded by the bootloader and used by the kernel to configure the ha...
4 IPCs used in user level process in Linux
Message Queues - allows processes to exchange data through messages
Shared Memory - allows processes to share a portion of memory
Semaphores - used for synchronization between processes
Pipes - allows communication between two related processes
Inter-process communication mechanisms like pipes, sockets, message queues, shared memory can be used to call a function from one user process to another.
Use pipes to establish a unidirectional communication channel between two processes.
Use sockets to establish a bidirectional communication channel between two processes.
Use message queues to send messages between processes.
Use shared memory to share data between proce...
Program with 2 threads printing even and odd numbers in sequence. How to make it SMP safe?
Use mutex locks to ensure only one thread accesses the shared resource (the number to be printed) at a time
Use condition variables to signal when it's safe for the other thread to access the shared resource
Use atomic variables to ensure that the shared resource is accessed atomically
Use thread-safe data structures to store the sha...
Medium difficulty level of questions
I applied via Referral and was interviewed before Jun 2021. There was 1 interview round.
I applied via Recruitment Consultant and was interviewed before May 2020. There were 3 interview rounds.
Clone a linked list with random pointers.
Create a new node for each node in the original list.
Store the mapping between the original and cloned nodes in a hash table.
Traverse the original list again and set the random pointers in the cloned list using the hash table.
Return the head of the cloned list.
I appeared for an interview before May 2021.
Round duration - 120 Minutes
Round difficulty - Medium
Round duration - 60 Minutes
Round difficulty - Easy
Given a singly linked list with 'N' nodes containing integer values, your task is to sort the list using insertion sort and output the sorted list.
Insertion Sort is an al...
Implement insertion sort algorithm on a singly linked list with integer values.
Traverse the linked list and for each node, find its correct position in the sorted list.
Remove the node from the original list and insert it at the correct position in the sorted list.
Repeat this process until all nodes are sorted.
Ensure the implementation is in-place, without using extra space.
Handle edge cases like empty list or single no...
Your task is to implement a Stack data structure using a Singly Linked List.
Create a class named Stack
which supports the following operations, each in O(1...
Implement a Stack data structure using a Singly Linked List with operations in O(1) time.
Create a class named Stack with getSize, isEmpty, push, pop, and getTop methods.
Use a Singly Linked List to store the elements of the stack.
Ensure each operation runs in O(1) time complexity.
Handle cases where the stack is empty appropriately.
Implement the logic for each query type as specified in the input and output sections.
Given an integer N, determine and print all the prime numbers between 2 and N, inclusive.
Integer N
Prime numbers printed on separate lines
Generate and print all prime numbers between 2 and N, inclusive.
Iterate from 2 to N and check if each number is prime
Use a helper function to determine if a number is prime
Print each prime number on a new line
Round duration - 45 Minutes
Round difficulty - Medium
This round was based on oops concepts and their applications and about STLs.
Given a number N
, generate a pattern where the outer rectangle is filled with the number N
, and the inner rectangles contain decreasing numbers down to 1.
The input be...
Generate a rectangular pattern with outer rectangle filled with N and inner rectangles containing decreasing numbers.
Create a 2-D array with dimensions based on input N
Fill the outer rectangle with N and inner rectangles with decreasing numbers down to 1
Adjust the values in the inner rectangles based on the layer number
Return the generated pattern as a 2-D list/array
Round duration - 30 Minutes
Round difficulty - Easy
This around was basically to judge my communication and behavioral skills.
Tip 1 : Basics should be very clear related to DSA.
Tip 2 : Good knowledge of OS will be plus for Qualcomm
Tip 3 : One should revise the college project thoroughly before interview.
Tip 1 : Be brief while writing resume.
Tip 2 : Mention atleast 2 projects.
posted on 7 May 2017
I appeared for an interview in Feb 2017.
malloc is a function in C that dynamically allocates memory on the heap. It is used to allocate memory for variables or data structures.
malloc is used in C programming language.
It is used to allocate memory on the heap.
malloc is different from 'new' in C++ as it does not call constructors for objects.
C++ is a general-purpose programming language while Objective C is a superset of C used for iOS and macOS development.
C++ is widely used for developing applications, games, and system software.
Objective C is mainly used for iOS and macOS development.
C++ supports both procedural and object-oriented programming paradigms.
Objective C is an object-oriented language with dynamic runtime features.
C++ has a larger community a...
Class container is a class that holds objects of other classes, while class composition is a way to combine multiple classes to create a new class.
Class container holds objects of other classes, acting as a collection or container.
Class composition combines multiple classes to create a new class with its own behavior and attributes.
In class container, the objects are typically stored in a data structure like an array o...
Divide the horses into groups of 5 and race them. Take the top 2 from each race and race them again. Finally, race the top 2 horses to determine the top 3.
Divide the horses into 3 groups of 5 and race them.
Take the top 2 horses from each race and race them again.
Finally, race the top 2 horses to determine the top 3.
Developing a real-time data processing system for a high-traffic e-commerce website
Implemented a distributed system architecture to handle large volumes of data
Optimized algorithms for efficient data processing and storage
Utilized caching mechanisms to improve system performance
Worked closely with cross-functional teams to troubleshoot and resolve issues
Example: Successfully reduced data processing time by 50% by imple...
The width of a tree is the maximum number of nodes at any level in the tree.
To calculate the width of a tree, we can perform a level order traversal and keep track of the maximum number of nodes at any level.
We can use a queue data structure to perform the level order traversal.
At each level, we count the number of nodes in the queue and update the maximum width if necessary.
I appeared for an interview in Aug 2017.
Technical Lead
312
salaries
| ₹19.1 L/yr - ₹34.8 L/yr |
Senior Software Engineer
135
salaries
| ₹14.5 L/yr - ₹25.1 L/yr |
Software Engineer
112
salaries
| ₹11 L/yr - ₹27 L/yr |
Manufacturing Engineer
96
salaries
| ₹5.8 L/yr - ₹13.8 L/yr |
Senior Engineer Mechanical
71
salaries
| ₹12 L/yr - ₹20 L/yr |
Qualcomm
Intel
Molex
TDK India Private Limited