i
Synopsys
Filter interviews by
I applied via Campus Placement
Aptitude was comparitively simple and easy to crack
A CMOS (Complementary Metal-Oxide-Semiconductor) is a type of integrated circuit technology that uses both NMOS and PMOS transistors.
CMOS is widely used in digital logic circuits due to its low power consumption.
It consists of a combination of NMOS (n-type) and PMOS (p-type) transistors.
The NMOS transistors are used for logic 0 and the PMOS transistors for logic 1.
The transistors are connected in a complementary manner...
Top trending discussions
posted on 7 Jul 2024
I applied via Campus Placement
It was an online assesment followed by an offline assessment.
A linked list is a data structure where each element points to the next element in the sequence.
Create a Node class with data and next pointer
Initialize a head pointer to null
Add elements by creating new nodes and updating next pointers
Traverse the list by following next pointers
To insert a node in a Linked List, update the next pointer of the new node to point to the current node's next, then update the current node's next pointer to the new node.
Create a new node with the desired value
Set the new node's next pointer to the current node's next
Update the current node's next pointer to the new node
To check if a directed graph is cyclic or not
Use Depth First Search (DFS) algorithm to traverse the graph
Maintain a visited set to keep track of visited nodes
Maintain a recursion stack to keep track of nodes in the current DFS traversal
If a node is visited and is already in the recursion stack, then the graph is cyclic
If DFS traversal completes without finding a cycle, then the graph is acyclic
Return a random byte from a stream of bytes with equal probability.
Create a variable to store the count of bytes read
Create a variable to store the current random byte
For each byte read, generate a random number between 0 and the count of bytes read
If the random number is 0, store the current byte as the random byte
Return the random byte
Check if a binary tree is a binary search tree or not.
Traverse the tree in-order and check if the values are in ascending order.
For each node, check if its value is greater than the maximum value of its left subtree and less than the minimum value of its right subtree.
Use recursion to check if all nodes in the tree satisfy the above condition.
Algorithm to find Nth-to-Last element in a singly linked list of unknown length
Traverse the list and maintain two pointers, one at the beginning and one at Nth node from beginning
Move both pointers simultaneously until the second pointer reaches the end of the list
The first pointer will be pointing to the Nth-to-Last element
If N=0, return the last element
Parse the list only once
Print all possible permutations of an array of integers
Use recursion to swap elements and generate permutations
Start with the first element and swap it with each subsequent element
Repeat the process for the remaining elements
Stop when all elements have been swapped with the first element
Print each permutation as it is generated
Design a stack that prints the minimum element pushed in O(1)
Use two stacks, one for storing elements and another for storing minimums
When pushing an element, compare it with the top of minimum stack and push the smaller one
When popping an element, pop from both stacks
To get the minimum element, just return the top of minimum stack
To find the starting point of a loop in a linked list, use Floyd's cycle-finding algorithm.
Use two pointers, one moving at twice the speed of the other.
When they meet, move one pointer to the head of the list and keep the other at the meeting point.
Move both pointers one step at a time until they meet again, which is the starting point of the loop.
To find a number in a matrix where all rows and columns are sorted non-decreasingly. Complexity of the solution.
Use binary search to find the number in each row and column
Start from the top-right corner or bottom-left corner to optimize search
Time complexity: O(m log n) or O(n log m) depending on the starting corner
posted on 14 Jul 2017
posted on 12 Jul 2016
I applied via Campus Placement
The question is about finding the minimum steps to reach from a source string to a destination string using three operations.
BFS and DFS are graph traversal techniques that can be used to solve this problem.
BFS is typically used when finding the shortest path or exploring all possible paths in a graph.
DFS is useful when searching for a specific path or exploring deeply into a graph.
In this case, BFS can be used to find...
I applied via Campus Placement and was interviewed in Dec 2016. There were 5 interview rounds.
UDP is preferred over TCP in this project due to its low latency and lightweight nature.
UDP is a connectionless protocol, which means it does not establish a direct connection between the sender and receiver.
UDP is faster than TCP as it does not have the overhead of establishing and maintaining a connection.
UDP is suitable for applications where real-time data transmission is crucial, such as video streaming or online ...
To clear the 7th bit in a 32-bit register, perform a bitwise AND operation with a mask that has all bits set to 1 except the 7th bit.
Create a mask with the 7th bit set to 0 and all other bits set to 1
Perform a bitwise AND operation between the register and the mask
Store the result back in the register
posted on 10 May 2015
Locate sum of 2 numbers in a linear array (unsorted and sorted) and their complexities
For unsorted array, use nested loops to compare each element with every other element until the sum is found
For sorted array, use two pointers approach starting from the beginning and end of the array and move them towards each other until the sum is found
Complexity for unsorted array is O(n^2) and for sorted array is O(n)
Pointers are used to manipulate memory addresses and values in C++. Increment/decrement, address of and value at operators are commonly used.
Incrementing a pointer moves it to the next memory location of the same data type
Decrementing a pointer moves it to the previous memory location of the same data type
The address of operator (&) returns the memory address of a variable
The value at operator (*) returns the value sto
To determine if a point is inside or outside a rectangle, we check if the point's coordinates fall within the rectangle's boundaries.
Check if the point's x-coordinate is greater than the left edge of the rectangle
Check if the point's x-coordinate is less than the right edge of the rectangle
Check if the point's y-coordinate is greater than the top edge of the rectangle
Check if the point's y-coordinate is less than the b...
To find line that divides rectangle into 2 equal halves through a point inside it.
Find the center of the rectangle
Draw a line from the center to the given point
Extend the line to the opposite side of the rectangle
The extended line will divide the rectangle into 2 equal halves
There are multiple combinations of 8-bit and 16-bit signed numbers. How many such combinations are possible?
There are 2^8 (256) possible combinations of 8-bit signed numbers.
There are 2^16 (65,536) possible combinations of 16-bit signed numbers.
To find the total number of combinations, we can add the number of combinations of 8-bit and 16-bit signed numbers.
Therefore, the total number of possible combinations is 256 +
Find duplicates in an array of elements in 0(n) time and 0(1) space.
Use the property of inputs to your advantage
Iterate through the array and mark elements as negative
If an element is already negative, it is a duplicate
Return all the negative elements as duplicates
I applied via Referral and was interviewed before Sep 2020. There was 1 interview round.
posted on 23 Sep 2017
I was interviewed in Sep 2017.
An SR flip-flop can be implemented using NAND gates.
Use two NAND gates to create the SR flip-flop.
Connect the output of one NAND gate to the input of the other NAND gate.
Connect the Set (S) and Reset (R) inputs to the inputs of the NAND gates.
The output of the first NAND gate is the Q output, and the output of the second NAND gate is the Q̅ output.
The answer describes the steps to find and display the temperature of N rooms.
Create an array to store the temperature of each room
Iterate through each room and prompt the user to enter the temperature
Store the temperature in the corresponding array index
Display the temperature of each room
posted on 7 May 2017
I was interviewed 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
Seeking new challenges and opportunities for growth.
Looking for a more challenging role to further develop my skills
Interested in exploring new technologies and industries
Seeking better career advancement opportunities
Want to work in a more collaborative team environment
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.
based on 1 interview
Interview experience
based on 1 review
Rating in categories
R&D Engineer
148
salaries
| ₹0 L/yr - ₹0 L/yr |
Senior R&D Engineer
100
salaries
| ₹0 L/yr - ₹0 L/yr |
Staff Engineer
89
salaries
| ₹0 L/yr - ₹0 L/yr |
Security Consultant
60
salaries
| ₹0 L/yr - ₹0 L/yr |
Applications Engineer
58
salaries
| ₹0 L/yr - ₹0 L/yr |
Cadence Design Systems
Mentor Graphics
Ansys Software Private Limited
Infineon Technologies