FAANG
Competitive programming questions.
Install / Use
/learn @neerazz/FAANGREADME
layout: default title: "Home" nav_order: 1 permalink: /
<p align="center"> <img height="100" src="https://www.pcr-online.biz/wp-content/uploads/faang-own-logo-660x330.jpg" alt="FAANG Logo"> </p>FAANG, the Magnificent Seven & Modern Tech Interviews (2025)
Note: While the term "FAANG" (Meta, Amazon, Apple, Netflix, Google) is still widely recognized, the tech world in 2025 often refers to the "Magnificent Seven" (Apple, Microsoft, Alphabet, Amazon, Nvidia, Meta, Tesla) as the dominant group of companies shaping the industry and interview trends. This repository keeps the FAANG name for legacy and recognition, but covers all major tech interview patterns.
Welcome! This repository is a comprehensive collection of solutions, explanations, and resources for mastering coding interviews at top tech companies. Whether you're preparing for interviews at FAANG, the Magnificent Seven, or any leading tech firm, you'll find:
- Original, well-commented solutions to hundreds of classic and trending problems
- Intuitive explanations and step-by-step approaches
- Curated resources for Data Structures, Algorithms, System Design, and OOP
- Company-specific and topic-specific question lists
🚀 Why This Repo?
Tech interviews are evolving, but the fundamentals remain the same. The problems here are the backbone of interviews at companies like Apple, Google, Amazon, Meta, Microsoft, Netflix, Nvidia, and more. Mastering these will prepare you for both traditional and modern interview formats.
📚 Table of Contents
- Complexities & Big O Explained
- Resources & Training Material
- Data Structures & Algorithm Patterns
- Contests
- System Design
- OOPS Design
- Important Links
- LeetCode FAQ
- How to Use This Repo
- How to Contribute
- When to Contribute
Complexities & Big O Explained
Understanding time and space complexity is crucial for writing efficient code and acing interviews. Here’s a high-level overview:
| Complexity Type | Notation | Example Algorithm | Typical Use Case | |-----------------|------------|----------------------------------|------------------------------| | Constant | O(1) | Hash table lookup | Accessing array element | | Logarithmic | O(log n) | Binary search | Searching in sorted array | | Linearithmic | O(n log n) | Merge sort, Heap sort | Efficient sorting | | Quadratic | O(n^2) | Bubble sort, Selection sort | Simple nested loops | | Cubic | O(n^3) | Floyd-Warshall, 3-nested loops | Some DP, matrix operations | | Factorial | O(n!) | Traveling Salesman, permutations | Brute-force combinatorics |
- Always clarify which case you’re analyzing in interviews.
- Amortized analysis (e.g., dynamic array resizing) is also common. Why Big O? Big O notation helps you compare algorithms and predict performance as input size grows. Interviewers expect you to:
- Optimize when possible
- Justify trade-offs
Further Reading:
Resources and Training Material
<details> <summary><strong>Data Structures & Algorithms</strong></summary>- <b>Elements of Programming Interviews in Java</b> (Beginner & Intermediate): In-depth problems and solutions. PDF
- <b>Grokking the Coding Interview</b> (Beginner & Intermediate): Pattern-based approach to common questions. Link
- <b>Cracking the Coding Interview</b> (Beginner & Intermediate): The classic interview prep book. PDF
- <b>Coursera</b>:
- <b>Grokking the Object-Oriented Design Interview</b>: Real-world OOD patterns and problems. Link
- <b>System Design Interview An Insider’s Guide by Alex Yu</b> (Intermediate & Advanced): PDF
- <b>Designing Data Intensive Applications</b> (Intermediate & Advanced): PDF
- <b>Scalability System Design for Developers</b>: Link
Data Structures & Algorithm Patterns
This section provides in-depth explanations, complexity analyses, and common Java patterns for key data structures and algorithms.
Data Structures
- Arrays: Two Pointers, Sliding Window.
- Linked Lists: Fast & Slow Pointers, In-place Reversal.
- Stacks: Monotonic Stack, Parentheses Matching.
- Queues: Breadth-First Search (BFS).
- Hash Tables: Frequency Counting, Two Sum pattern.
- Heaps (Priority Queues): Top K Elements.
- Binary Trees: DFS & BFS Traversals.
- Tries: Prefix Searching.
- Graphs: Representations and Traversals.
- Union-Find: Dynamic Connectivity.
Algorithms
- Binary Search: Standard and Boundary Search.
- DFS & BFS: Graph and Tree Traversal.
- Sliding Window: Fixed and Variable Size Windows.
- Two Pointers: Opposite Ends and Fast/Slow Pointers.
- Recursion & Backtracking: Permutations, Subsets, Combinations.
- Dynamic Programming: Memoization and Tabulation.
- Greedy Algorithms: Locally Optimal Choices.
- Topological Sort: For Directed Acyclic Graphs.
Contests
Sharpen your skills and benchmark yourself with real contest problems:
- Leetcode Contests (Biweekly & Weekly)
- Hackerrank Contests
- Google Kickstart (2020, 2021)
System Design
General Design Questions:
OOPS Design
- Design Library Management System
- [Design Parking Lot](https://github.com/neerazz/faang-system-d
