Facebook (Meta) is a global social networking platform owned by Meta Platforms, ranked 27th on the Fortune 500 with around 72,000 employees worldwide. This sheet helps you prepare for Facebook interviews with curated questions and answers.
The recruitment at Meta is broadly a 4 step process:
- Resume Screenings: Recruiters will screen your resume for technical requirements, education, and experience, to check if you’re a potential fit.
- Phone screenings: There are usually two rounds of phone screenings at meta:
- Pre-Screen: A focused 20-minute screening where HR evaluates your background and behavioral fit..
- Technical Phone Screening: A Meta engineer reviews your resume briefly, then tests you with 1–2 DSA coding problems to solve in an online editor within 30 minutes.
- On-site Interviews: The process includes 4–5 interview rounds, each lasting about 45 minutes. For technical roles, it mainly consists of:
- Coding on-site interviews: whiteboarding solutions to slightly harder data structures and/or algorithmic problems.
- System Design on-site interviews: You will be asked to come up with high-level design architectures for real-life products.
- Hiring Committee reviews: It is more like a candidate assessment meeting where team leaders/ managers will determine whether you’re a good fit for their respective team.
Technical Phone Screening
- Telephonic interviews offer flexibility and easy access to notes, but they also come with unique challenges.
- Proper preparation is essential to overcome these challenges and move to the final selection.
- We have compiled effective tips to help you crack a telephonic interview successfully.
Topic-Wise DSA Questions
Array
An Array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together.
- Move all zeroes to the end of array [Practice Problem]
- Subarray with given sum [Practice Problem]
- Find k numbers with most occurrences in the given array [Practice Problem]
- Largest Sum Contiguous Subarray [Practice Problem]
- Matrix Rotation [Practice Problem]
- Trapping Rain Water [Practice Problem]
- Next Permutation [Practice Problem]
- Product of Array except itself [Practice Problem]
- Search a Word in a 2D Grid of characters [Practice Problem]
- Program for Conway’s Game Of Life [Practice Problem]
- Pascal’s Triangle [Practice Problem]
- Number of square matrices with all 1s [Practice Problem]
- Minimum time required to produce m items [Practice Problem]
- Count of submatrix with sum X in a given Matrix [Practice Problem]
- Third largest element in an array of distinct elements [Practice Problem]
- Count Smaller elements [Practice Problem]
- Minimum number of jumps to reach end [Practice Problem]
- Largest Fibonacci Subsequence [Practice Problem]
- Majority Element [Practice Problem]
String
String are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character ‘\0’.
- Program to convert a given number to words [Practice Problem]
- Find the smallest window in a string containing all characters of another string [Practice Problem]
- Print all combinations of balanced parentheses [Practice Problem]
- Given a sequence of words, print all anagrams [Practice Problem]
- Sum of two large numbers [Practice Problem]
- Converting Roman Numerals to Decimal lying between 1 to 3999 [Practice Problem]
- Given a string, find its first non-repeating character [Practice Problem]
- Program to validate an IP address [Practice Problem]
- Look-and-Say Sequence [Practice Problem]
- Generate all binary strings from given pattern [Practice Problem]
- Multiply Large Numbers represented as Strings [Practice Problem]
- Find if a given string can be represented from a substring by iterating the substring “n” times [Practice Problem]
- Length of the smallest sub-string consisting of maximum distinct characters [Practice Problem]
- Put spaces between words starting with capital letters love [Practice Problem]
Linked List
LinkedList is the data structure that can overcome all the limitations of an array. A Linked list is a linear data structure, in which the elements are not stored at contiguous memory locations, it allocates memory dynamically.
- Reverse a linked list [Practice Problem]
- Merge K sorted linked lists [Practice Problem]
- Add two numbers represented by linked lists [Practice Problem]
- Clone a linked list with next and random [Practice Problem]
- Function to check if a singly linked list is palindrome [Practice Problem]
- Reverse a Linked List in groups of given size [Practice Problem]
- Write a function to get the intersection point of two Linked Lists [Practice Problem]
- Detect loop in a linked list [Practice Problem]
- Delete a Linked List node at a given position [Practice Problem]
- Remove duplicates from a sorted linked list [Practice Problem]
Tree
A Tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value, a list of references to nodes (the “children”).
- Binary Tree to DLL [Practice Problem]
- Serialize and Deserialize a Binary Tree [Practice Problem]
- Level Order Binary Tree Traversal [Practice Problem]
- Convert a Binary Tree to a Circular Doubly Link List [Practice Problem]
- Lowest Common Ancestor in a Binary Tree [Practice Problem]
- A program to check if a binary tree is BST or not [Practice Problem]
- Diameter of a Binary Tree [Practice Problem]
- Check if a binary tree is subtree of another binary tree [Practice Problem]
- Given a binary tree, print all root-to-leaf paths [Practice Problem]
- Inorder Successor in Binary Search Tree [Practice Problem]
- Connect nodes at same level using constant extra space [Practice Problem]
Graph
A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph.
- Clone an Undirected Graph [Practice Problem]
- Check whether a given graph is Bipartite or not [Practice Problem]
- Topological Sorting [Practice Problem]
- Find the number of islands [Practice Problem]
- Detect Cycle in a Directed Graph [Practice Problem]
- Implementing Dijkstra Algorithm [Practice Problem]
- Strongly Connected Components (Kosaraju's Algo) [Practice Problem]
- Prerequisite Tasks [Practice Problem]
- Distance from the Source (Bellman-Ford Algorithm) [Practice Problem]
- Word Boggle - II [Practice Problem]
Sorting
Sorting Algorithm is used to rearrange a given array or list of elements according to a comparison operator on the elements.
- Merge Overlapping Intervals [Practice Problem]
- Sort an array of 0s, 1s and 2s [Practice Problem]
- The floor in a Sorted Array [Practice Problem]
- Chocolate Distribution Problem [Practice Problem]
- k largest(or smallest) elements in an array [Practice Problem]
- Sort an array according to the order defined by another array [Practice Problem]
- Overlapping Intervals [Practice Problem]
- Minimum sprinklers required to be turned on to water the plants [Practice Problem]
Searching
Searching Algorithms are designed to check for an element or retrieve an element from any data structure where it is stored.
- Key Pair [Practice Problem]
- Find all triplets with zero sum [Practice Problem]
- Allocate a minimum number of pages [Practice Problem]
- painter’s partition problem [Practice Problem]
- Minimum Number of Platforms Required for a Railway/Bus Station [Practice Problem]
- The square root of an integer [Practice Problem]
- Sort an array according to the order defined by another array [Practice Problem]
- Find the element that appears once [Practice Problem]
Stack
A Stack is a linear data structure in which elements can be inserted and deleted only from one side of the list, called the top. A stack follows the LIFO (Last In First Out) principle.
- Stock Span Problem [Practice Problem]
- Sort a stack using recursion [Practice Problem]
- Implement two stacks in an array [Practice Problem]
- Length of the longest valid substring [Practice Problem]
- Next Greater Element [ Practice Problem]
- Maximum size rectangle binary sub-matrix with all 1s [Practice Problem]
Queue
A queue is a linear data structure that follows the FIFO principle, where elements are inserted at the rear and removed from the front.
- Celebrity Problem [Practice Problem]
- Implement Stack using Queues [Practice Problem]
- Circular tour [Practice Problem]
- Snake and Ladder Problem [Practice Problem]
Dynamic Programming
Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for the same inputs, we can optimize it using Dynamic Programming.
- Count Possible Decoding's of a given Digit Sequence [Practice Problem]
- Maximum size square sub-matrix with all 1s [Practice Problem]
- Stock Buy Sell to Maximize Profit [Practice Problem]
- Word Break [Practice Problem]
- Wildcard Pattern Matching [Practice Problem]
- Maximum size rectangle binary sub-matrix with all 1s [Practice Problem]
- Painting Fence Algorithm [Practice Problem]
- Longest Increasing Subsequence [Practice Problem]
- Count All Palindrome Sub-Strings in a String [Practice Problem]
- Count ways to reach the n’th stair [Practice Problem]
- Burst Balloon to maximize coins [Practice Problem]
System Design
- System Design is the practice of defining a system’s architecture, components, and interfaces to satisfy end-user requirements, and it plays a critical role in technical interviews. Leading tech companies like Amazon, GoogleandFacebook frequently assess candidates on concepts such as scalability, load balancing, and caching.
- This specially crafted System Design Tutorial & System Design Course is designed to help you efficiently learn and master System Design concepts, from fundamentals to advanced levels.
Behavioral Skills
- Many candidates feel anxious about Behavioural Interview Questions since they are less structured and often outside a programmer’s comfort zone.
- Unlike technical questions with clear, standard answers, behavioral questions are more open-ended and can feel challenging.