- Basic loop understanding in Java is required as a prerequisite of this course rest all we will teach as part of the course
- All Concepts Explains From Very Basic to Advanced level

- Freshers Candidates preparing for interviews of Big-5(Google,Amazon Microsoft,Facebook,Apple) and Top Product Based organization
- B.Tech/MCA/MS Students looking for data structures Algorithms & System Design training
- Candidates preparing for competitive programming
- Job seekers who are preparing for interview in Product MNC/ecommerce companies
- Anyone who has deep desire to learn data structures Algorithms and System Design to improve programming/coding skills and designing skills

- It's not about solving every problem of every topic but it's about practicing similar problems to understand the tricks. Once you know the tricks then any problems can be solved easily.
- Each topic explains from a very basic to advanced level by using multiple examples.
- More focus is on Tricks,Techniques and implementation than theory.Become master in Data structures, Algorithms & System Design in 2-3 Months of preparation.

- Many times Working professionals or Freshers candidates devalue the importance of learning data structures, algorithms & system design considering it as complicated. However they soon get a reality check when they enter the real-world for job hunting.
- Big Tech Giants like Amazon, Google, Microsoft or any product companies always ask questions related to algorithms, data structures & system design to check the problem-solving & system design abilities of the candidates

- No Strict Timing or Sharp Deadlines to Complete the course.
- Consistent 2 hours of everyday regular preparation is the key to Solid Foundation.
- Most of the working professionals have working office hours, as well as freshers students, have Academic schedules. So, You can prepare this course according to Schedule & Pace.
- Ask your doubts any time with experts. Use Lectures for understanding the concepts and assignments for practice.

- We have assignments with every lecture on every topic.
- After understanding lectures give it a shot to assignments that are based on similar concepts of lectures.
- Even if you can't able to crack assignments by yourself, we have all assignments in detail discussion with code explanation.
- In this course, we teach all techniques of solving algorithms with the help of (Lectures + Assignments) combo.

- Ask your doubts anytime.
- No need to wait for a specific time to clarify your doubts.
- Dedicated mentor is assigned to you
- Doubt clearing program is executed by experts having of 10+ years industry experience .
- Every lecture & assignment has doubts clearing option where users can ask their doubts related to that lecture.
- Also, Subscribers can include code,voice screen record or screenshot. All queries will be answered by our experts.

- Weekly coding test is the gateway for top tech companies interviews.
- You can perform these tests any time during your preparation.
- All performers are eligible for our Job referral program in top tech companies
- We refer candidates resume and schdule interviews through our partnered consultancies and contacts in Top Product Based software companies.

- For every lecture, we provide a complete code solution in your favourite editor in Java, Python & C++.
- For assignments you can also Practice code in editor.

- It is also very important to test subscribers progress while preparing for the course. We have online coding tests for specific topics every week in Data Structure & Algorithms.
- We keep track of your progress during the course preparation program.
- These Online tests for every topic will brush up coding skills.

- Before appearing for an actual interview, It is important to have multiple rounds of mock interviews.
- All the performant subscribers will be eligible for Mock interviews as well as Job referral program.

**Analyzing every code of all lectures & assignments with step by step execution with diagrams and pointers. You can analyse by yourself every code line by line**

Course Content
64:24:04
262 lectures

- Time Complexity analysis using Big O Notation
- Space Complexity analysis using Big O Notation
- Techniques to find time & space complexity
- Array overview & introduction
- Searching algorithms Introduction & Implementation
- Binary search algorithm, implementation with examples
- Searching max value in ordering array & rotational array using binary search
- Sorting Algorithms & Implementation
- Find Inversion array & median of two array using merge sort
- Shuffling array element by segregate 0’s,1’s & 2’s with moving 0’s to end

- Assignments based on binary search algorithms
- Assignments based on Array basic computation

- Linear time approach to find next smallest palindrome & next greater number in array
- Minimum Window Substring & two pointers techniques
- Distinct window substring & remove duplicates from order, un-ordered strings
- Quick sort approach for maximum Sum Subarray, Kth smallest element in an array
- Xor techniques to find one & two unique element in an array
- Trapping Rain Water, Rearrange array for max( arr[i] - arr[j])
- Design array data structures with O(1) operations

- Assignments based on sorting algorithms
- Assignments based on merge sort efficient algorithms techniques
- Assignments based on Array medium level difficultly problems

- Techniques to solve matrix related problems(2-D array)
- Spiral order traversal, Diagonal Order Matrix, 90 degree matrix rotation etc
- Array Puzzle problem(Celebrity problem, stock buy sell, distributed candy etc)
- Compute Sqrt(x) using binary search
- Array computation to check rectangle Overlap & jump game problem
- Counting sort approach & problems
- Search efficiently in 2-D array
- Problem based on geometrical computational array

- Assignments based on 2-D array(matrix) advanced Problems
- Assignments based on Puzzles based on array
- Assignments based on geometrical array computations

- Foundations, Binary tree concepts & creation
- Making a tree node class, Explanation & Implementation of Binary Tree & BST
- Binary Tree traversal (InOrder, Pre and Post Order using recursion)
- Understanding time & space complexity in Binary Tree
- Basic computation of Lowest Common Ancestor, leave node, cousin node etc
- PreOrder, InOrder traversal without recursion
- Conversion BT to BST, BT to Doubly LinkedList
- Deletion in Binary Search Tree( one node, two node , leaf node etc)

- Assignments based on basic binary tree traversal algorithms
- Assignments based on conversion binary tree to other data structures
- Assignments based on node computation logic

- Techniques to solve distance problem in Binary tree
- K distance from root, all nodes k distance, k distance from leaf etc
- Minimum distance node, right node at distance etc.
- Traverse Binary tree left view, right view, bottom view & Top View etc
- Traverse Binary Tree Level Order,Reverse Level Order, spiral order etc
- Techniques to solve BST based Problems
- kth largest element BST, height balanced BST, largest subtree in BST etc
- Boundary traversal, Diameter of a Binary Tree etc

- Assignments based on distance traversal logic in Binary Tree
- Assignments based on BST(Binary search tree)
- Assignments based on boundary traversal of Tree

- N-ary Tree Introduction & Implementation
- Mirror image problems of BT & N-ary Tree
- Problems based on path in Binary Tree
- Maximum sum of leaf to root path, Maximum Path Sum(any node), convert BT to sumTree etc
- Serialise and Deserialise BT, Find largest Subtree etc
- Construct Binary tree from PostOrder & InOrder sequences

- Assignments based on Sumtree & path traversal logic in tree
- Assignments based on subtree computations & Mirror image
- Advanced level problems assignments

- Linked List Introduction & Implementation
- Linked List Operations: Traverse, Insert and Delete
- Doubly Linked List Introduction, Implementation & Operations
- LinkedList arrangement & Traversal Problems
- N’th node from the end, reverse a linked list, intersection point of Liked Lists etc
- Palindrome linked list

- Assignments based on LinkedList basic traversal
- Assignments based on DoublyLinkedList basic traversal
- Specific node computation in LinkedList

- Clone a Linked List
- Merge two Sorted Linked List
- Linked List addition
- Segregate Linked List into Even and Odd

- Assignments based on Merge operation of LinkedList
- Geometrical computation in LinkedList
- Problems based on medium difficulties

- Implement merge sort in linked list
- Flatten a multilevel doubly linked list
- Design & Implement Least recently used (LRU)
- Reverse LinkedList nodes in k-group
- Rearrange a given linked list in-place

- Assignments based on in-place k nodes reverse logic
- Advanced problems of multilevel Doubly LinkedList
- Problems based on arrangement of LinkedList

- Stack: What is stack & how are stacks data structures used?
- Application & Implementation of stack
- Queue: What is Queue & how are Queue data structures used?
- Application & Implementation of Queue
- Introduction & Implementation of Circular Queue
- Use stack to find next greater element in array
- Valid parenthesis

- Assignments based on basic stack LIFO operation
- Assignments based on basic queue FIFO operation

- Design Stack that Supports findMinimum() in O(1)
- Sliding Window Problem using queue Data Structure efficiently
- Use stack to solve application of Histogram problem
- Use stack to solve efficiently reverse word in string
- Find Maximum size rectangle in binary matrix

- Practise assignments of Advanced level difficulty in stack

- Recursion is base of Algorithms, how to use it ?
- Recursion examples with implementation
- How to apply backtracking using recursion

- Practise assignments of Basic level difficulty in Backtracking

- Implement pow(x, n)
- Find PowerSet Using Recursion
- N Queen Problem
- Print all Permutations of a given String
- Combinational Sum

- Practise assignments of Medium level difficulty in Backtracking

- Generate Combination of Parenthesis
- Rat Maze Problem
- Knight Walk Problem
- Sudoku Solving Problem
- Mobile Keypad Problem

- Practise assignments of Advanced level difficulty in Backtracking

- Graph Introduction & implementation
- Adjacency list implementation & traverse in graph
- Directed & Undirected graph introduction & implementation
- Depth First Search(DFS) introduction, implementation & Traversal
- Breadth First Search(BFS) introduction, implementation & Traversal
- Check graph connectivity using DFS
- Finding path in Directed Graph using BFS/DFS
- Find path in Matrix using DFS approach

- Practise assignments of Advanced level difficulty in graph
- Practise assignments of graph

- Topological sorting concepts and implementation
- Package Dependency problem, Alien Dictionary Problem using Topological etc
- Find Largest Region Graph, Number of IsLand in matrix etc using BFS graph
- Find cycle in Directed/Undirected Graph using DFS
- Rotten Orange Problem, Wall Gate Algorithm etc using BFS

- Practise assignments of Advanced level difficulty in graph
- Practise assignments of graph

- Trie data Structure Introduction, Concepts & Implementation
- Trie data structure approach to find word in matrix
- Trie data structure approach to implement Autocomplete suggestion problem
- Longest Common Prefix string using Trie
- Dijkstra Algorithm explanation with example
- Snake ladder problem, Phone , Phone Dictionary Problem etc
- Jumping Number problem, check graph is tree etc

- Practise assignments of Advanced level difficulty in graph
- Practise assignments of graph

- What is heap , Min Heap & Max Heap introduction, Approach
- Implementation of Min Heap & Max Heap
- Basic heap operation , Heapify operation implementation
- How hashing Works, Read/Write Operation O(1)
- Design and implement LRU
- Problems based on anagrams, group anagrams etc using hashing

- Practise assignments of Advanced level difficulty in hashing
- Practise assignments of heap

- Problems Based on running streams of strings using Hashing
- First non-repeating character from stream using hashing
- Find Median of running data streams problem using Heap
- Four sum problem, convert number to words etc
- Merge k sorted arrays, Relative Sorting, Minimum window string etc

- Practise assignments of Advanced level difficulty in hashing
- Practise assignments of heap

- What is Dynamic Programming
- How to identify a dynamic Programming problems
- How Dynamic programming is better without recursion
- Longest Increasing subsequence(LIS) Algorithms
- Longest Common Subsequences(LCS), Longest Palindrome
- Subsequences(LPS),common substing etc using LIS algorithms

- Practise assignments of Advanced level difficulty in DP
- Practise assignments of DP

- Fibonacci series DP concepts
- Solve nth strair problem,Count Path in a Matrix etc using DP Fibonacci
- String based DP problems
- String Edit Distance Algorithm,Interleaving Strings, string Partition Palindrome etc
- Delete Minimum Character to Make Palindrome
- Un-bound Knapsack Problem, KnapSack Problems optimised

- Practise assignments of Advanced level difficulty in DP
- Practise assignments of DP

- DP problems based on summation concepts
- Subset Sum Problem, find Count of Subset Sum,Maximum sum sub sequence
- Maximum Sum of Non adjacent Elements,Subset Partition etc
- Dynamic Programming puzzled based Problems
- Egg Dropping Puzzle, Wildcard Pattern Matching, Coin Change Problem etc
- Keystroke Problem,Rod Cutting Algorithm, word break, Weight Job Scheduled etc

- Practise assignments of Advanced level difficulty in DP
- Practise assignments of DP

- System design Internals & its components
- Sharding techniques
- Relational Database, SQL-NoSQL , Key Value Store & Document Store (MongoDB)
- Backend System techniques for distributed system and CAP theorem
- Http Polling, Long Polling , WebSockets, Server Side Events
- Design essentials : Latency, Throughput , Load Balancer
- Basic System Design problem
- Design Tiny URL, Design Pastebin Service
- Design Generic Deck of Cards, Design Backjack Card Games
- Design Airline Reservation System, Design File system
- Design Online Bus booking system(Red Bus), Design Railway Reservation System
- Design Streaming Music System, Design Hit Counter, Design parking Lot etc
- Design Online Hotel Booking System, Design CDN system etc
- Design Event Driven Architecture, Google Docs etc

- Practise assignments of Advanced level difficulty in Design
- Practise assignments of Design

- Design Facebook NewsFeed
- Design youtube/Netflix
- Design Uber system , Design Search Engine ( Like Google)
- Design BookMyShow , Design Recommend System
- Design WhatsApp Chat Service
- Design Drop Box/Google Drive, Design Distributed Cache System
- Design Garbage Collector System
- Design Customs HashMap Implementation Internals

- Practise assignments of Advanced level difficulty in Design
- Practise assignments of Design

- Design Twitter like social networking service & its tweet search features
- Search Functionality of Twitter Platform
- Design Zoom Car System
- Design Instagram
- Design Notification System
- Design a two Player Online Chess Game
- Design Online Shopping System Like Amazon, Flipkart
- Design Amazon Best seller Rank System
- Design Stock Exchange System( Zerodha, Upstox )
- Design Cricinfo
- Design Online Food Ordering System( Swiggy , Zomato)
- Object Oriented design of Food Ordering System(Swiggy , Zomato)
- Design Gmail
- Design API Rate Late Limiter
- Design Google Map
- Design online Discussion forum (like stackoverflow,quora)

- Practise assignments of Advanced level difficulty in Design
- Practise assignments of Design

- Understanding the classes and object and how to create it
- Solid Principles of OOPS
- Single-responsibility principle ,Open-closed principle, Dependency Inversion Principle etc
- How to apply design pattern for modular scalable code

- Introduction of design patterns
- Creational & structural design pattern
- How to use Singleton Design Pattern, Builder Design Pattern etc
- How to use Factory Design Pattern, Abstract Factory Design Pattern techniques
- How to use Observer design pattern, Strategy Design Pattern, Decorator Design Pattern etc

- What is threads, how to create threads
- How to create multiple threads
- How to achieve syntonisation using multithreading
- What is deadlock, how to avoid deadlock

- Implementation of Creating Deadlock
- Implementation of removing deadlock in Multithreaded Environment
- Implementation of creating 3 threads and how perform synchrozation
- Print sequence of Natural numbers using Three Threads
- Implementation of Multi Reader and Writer Problem using Multithreading

- How to choose best architecture for System Design interview problems
- Why micro service architectures is better than monolithic architecture
- How to design micro-service Architectures, fault tolerance scalable system
- Asynchronous communication, Active MQ internals with implementation
- How to Handle Cascading failure in System Design Problems, Implementation

- System Design Essentials(Service Discovery, Load Balancer, Distributed Tracing and Monitoring) etc
- Scalable asynchrnous communication using Kafka System Internals
- Concurrency and System failure issues in DB transaction in System Design
- Distributed Transaction of backend in Distributed System
- What is Docker, what is Cotainer, jenkins, cloud infrastructures
- Complete steps of Building and Deploying App in Docker Container Cloud Platform

- How to showcase soft skills(Teamwork,Leadership skills, Adaptability, DecisionMaking etc) in interview
- Amazon 14 Leadership Principal with examples
- How you will resolve conflict with team members in project
- How you handle situation, when you failed to deliver the project within project estimation timeline
- Biggest Technical mistake you have done in your project
- Situation when you had solved a very difficult problem in project
- Why your CGPA is not high, When you have taken initiative in a project
- Time when you have failed to meet customer deadline in project
- What is your greatest achievement in a project
- Time when you successfully meet the tight deadline of a project
- Tell me the time when you regret your decision in a project deliverables

- Lifetime Access Of Complete Course
- 260+ Lectures
- Assignments & Assignments Discussion
- Doubt Clearing Sessions
- Code Analysis Tool
- Editor For Practise
- Weekly Coding Test
- Referral Job Assistance
- Resume Guidelines
- Mock Interview
- Regular Updates

Binary search is the most efficient algorithm for searching an element in a sorted array. There are many applications or problems that can be solved very efficiently using Binary Search. In this sample lecture we dicussed the concept & implementation of Binary search

You are given an integer array where the numbers are sorted. You need to find an element in this integer array efficiently in O(Log n) Time complexity and O(1) Space Complexity.

Airline reservation system is most common OOPS design problems asked during system design rounds. You need find all the requirements like(scheduling of flights, air ticket reservations, customer DB inventory etc) and design efficient system.

Create all different model classes and find relation between them.

You need to design a data structure which support below operation in O(1) time complexity.

1) Insert() which adds an element to the data structure

2) remove() which removes an element from the data structure

3) findMiddle() which will return middle element

4) deleteMiddle() which will delete the middle element.

Our subscribers create milestones by cracking top tech companies' interviews & grab more than 60+ LPA(Lakh Per Annum) package in India . Logicmojo course provides them the guidance, direction, concepts & well-structured content to help them during their preparation.

These are only a few of our subscribers' reviews who grab top tech companies offer with their consistent efforts of months. Thank you so much for your reviews.

Must recommend for the aspirants who are preparing for Amazon, Google, Microsoft and Top Product Based Company interview. Logicmojo focus on techniques of solving data structures & system design problems

The course curriculum is of best quality along with good coding problems. Best course to prepare for FAANG companies interviews. Just finish this course completely. I cracked Paytm, Adobe, Intuit, and Microsoft. Finally, joined Microsoft

I have a very great experience with Logicmojo. Learning by doing is a great way to learn something which Logicmojo team encouraged me to do so. The course has a big contribution to my success.

Great course! Definitely helped me open some new doors in understanding how algorithms work and implementing solutions for the different exercises

**6 months period **

Just Click on **"Enroll Now"** for registration & apply for exclusive Discount in the checkout page

**2 Months to 2.5 Months**

If you just spend 2 hours every day in this course then in 2 to 2.5 months of time frame your preparation of coding and system design interview questions will be done.

You dont even need to refer to any other resources just finish this course and you are good to go for Top Tech Interviews

**Yes!!**

Subscribers can access all lectures for lifetime. They can access all lecture any time and any place.

Just Click on **"Enroll Now"** and Subscribe for the course

Yes, you can access the complete course in Mobile or Tablet.