A collection of best resources to learn Data Structures and Algorithms like array, linked list, binary tree, stack, queue, graph, heap, searching and sorting algorithms like quicksort and merge sort for coding Interviews
- Data Structures Deep Dive Using Java - https://bit.ly/3QH8Y2R
- DSA by Andrei Negaoie - https://bit.ly/3JOjH8v
- Coding Patterns on AlgoMonster - http://shrsl.com/483tt
- Data Structures - Part 1 and 2 - https://bit.ly/3w5uDtU
- Algorithms and Data Structures in Python - https://bit.ly/3JRhqKK
- CodeCademy - https://bit.ly/codecademyhome
- Data Structure for interviews - http://bit.ly/data-structures-algorithms-coding-interview
- Data Structures for Coding Interviews in Java [Educative] - https://bit.ly/3GVhWo3
- Master the Coding Interview: Data Structures + Algorithms [ZTM] - https://bit.ly/3JOjH8v
- Learn Complex Data Structures [Codecademy] - https://bit.ly/34DT2MJ
- Data Structure - Part I - https://bit.ly/3l4VxMj
- Algorithms Part 1 - https://bit.ly/3P45Gqi
- Visual Intro to Algorithms - https://bit.ly/3NcwIKx
- Graph Theory Algorithms - http://bit.ly/2NAbaIR
- more - https://bit.ly/3w2YQJY
- Cracking the Coding Interview: 189 Programming Questions
- Programming Interviews Exposed
- Daily Coding Problem: Get Exceptionally Good
- Udemy - https://bit.ly/3QH8Y2R
- ZTM Academy - https://bit.ly/3JOjH8v
- Educative - https://bit.ly/3JOjH8v
- CodeCademy - https://bit.ly/codecademyhome
- DesignGurus.io - https://bit.ly/4cOygYF
- AlgoMonster - http://shrsl.com/483tt
- LeetCode - https://leetcode.com/
- Coursera - https://bit.ly/3BxMXzr
- Blind 75: https://lnkd.in/g5wx7QSq
- Grind 75: https://lnkd.in/gvZ7_pnp - I focused on this
- Practice C++ STL or Java Collections or data structure libraries in the language of your choice its essential for fast coding
A comprehensive list of Data Structure and algorithms interview questions categorized by topic. These questions are asked multiple times on core Java interview to many developers, both junior developers with 1 to 2 years of experienced, intermediate developers of 3 to 5 years of experience and senior developers with 5 to 10 yeras of experience.
- How to find the maximum occurring character in a given String
- How to remove a given character from a String
- How to count the occurrence of a given character in a String
- How to find all permutations of a given String
- How to reverse a given String in place
- How to check if two Strings are anagrams of each other
- How to convert a given String into an integer
- How to check if a given String is a palindrome
- How to find the first non-repeated character from a given String
- How to check if an array contains a number in Java?
- How to find all pairs in an array whose sum is equal to k
- How to remove duplicates from an array in Java
- Binary Search Algorithm without Recursion
- Prime Number Generation Algorithms - Sieve of Eratosthenes
- How to find largest and smallest number from integer array - Java Solution
- How to Reverse an Array in place in Java? Example Solution
- How to sort an Array in descending order in Java? Example Tutorial
- How to Rotate an Array to Left or Right in Java? Solution Example
- How to implement Bubble sort in Java?
- How to sort an array in place using the QuickSort algorithm?
- What is an array? Can you change the size of the array once created?
- Can you store String in an array of Integer in Java? compile-time error or runtime exception?
- What is the difference between ArrayIndexOutfOBounds and ArrayStoreException?
- Can you use Generics with an array?
- What is a two-dimensional array in Java?
- Do you have a three-dimensional array in Java?
- How to iterate over an array in Java?
- What is the difference between an array and a linked list?
- How to sort an array in Java?
- Top 21 Java Array Interview Questions and Answers
- What is the difference between an array and a linked list?
- How to implement a singly linked list in Java?
- How to reverse a singly linked list in Java?
- How to detect a loop in a linked list?
- How to find the middle element of a linked list in one pass?
- How to merge two sorted linked lists into one sorted linked list?
- How to delete a node from a singly linked list?
- How to find the nth node from the end in a singly linked list?
- How to sort a linked list in Java?
- What are the advantages and disadvantages of using a linked list over an array?
- How to detect and remove loop in a linked list in Java?
- How to find the intersection point of two linked lists?
- How to create a circular linked list in Java?
- Write a program to find all permutations of a given String?)
- Write a program to check if a given String is a palindrome()?
- Write a program to remove duplicates from an unsorted linked list?
- Write a program to find the length of a given linked list?
- Write a program to implement a quicksort algorithm using recursion?
- Write a method countLeaves() to find the total number of leaf nodes in a binary tree. If there are no leaf nodes, return 0
- Write a program to find the greatest common divisor or GCD of a given number?
- Write a program to convert a decimal number to a binary number?
- Write a program to print pre-order traversal of binary tree?
- Write a program to print in-order traversal of binary tree using recursion?
- Write a program to print post-order traversal of binary tree?
- Write a program to check if a given linked list is a palindrome?
- How to implement Merge Sort Algorithm in Java - Example Tutorial
- How to Find Nth Fibonacci Number in Java - Example Tutorial
- How to swap two Integers without using a temporary variable in Java?
- How to find Factorial in Java using Recursion and Iteration - Example Tutorial
- How to code Binary Search Algorithm using Recursion in Java? Example
- How to convert Decimal to Binary Number in Java? Example Tutorial
- Counting Sort in Java - Example
- How to check if an array contains a number in Java?
- How to sort an array in place using the QuickSort algorithm?
- How do you print all duplicate elements from the array in Java?
- Top 100 Data Structure and Algorithm Interview Questions for Java Programmers
- Top 30 Stack and Queue Data Structure Interview Questions for Practice
- Top 40 Binary Tree Coding Interview Questions for Programmers
- Top 22 Array Concepts Interview Questions Answers in Java
- 75+ Coding Interview Questions for Programmers
- 50+ Data Structure and Algorithms Problems from Interviews
- Top 50 Array Coding Problems for Interviews
- Top 20 Linked List Interview Questions for Programmers
- Top 10 Algorithm Interview Questions for Programmers
- Top 50 Core Java Interview Questions Answers
- Top 30 Core Java Interview Questions for 2 to 3 years Experienced Programmers
- Top 50 Java Collections Interview Questions
- Top 20 Java Thread Interview Questions Answers
- Top 40 Java Programming and Coding Interview Questions
- Top 10 Java Multithreading Interview Questions Answers
- Top 10 Java Serialization Interview Questions and Answers
- Top 10 Java Exception Handling Interview Questions Answers
- Top 15 Java NIO Interview Questions Answers
- Top 10 JDBC Interview Questions Answers for Java Programmers
- Top 10 Java Concurrency Interview Questions and Answers
- 50 Java Coding Interview Questions for Programmers
- 20 Core Java Interview Questions from Investment Banks
- 10 OOP Design Principles Java Programmer should know
- 20 Java Collections and Generics Interview Questions
- 15 Serialization Interview Questions in Java
- 10 Exception Handling Interview Questions in Java
- 10 Concurrency and Multithreading Interview Questions
- 10 JDBC Interview Questions for Java Programmers
- Top 10 Java Concurrency Interview Questions
- Top 10 Core Java Interview Questions for Beginners
- Top 10 Java String Interview Questions
Here's a list of 30 coding interview patterns, each with one or two example LeetCode problems:
- Problem 1: Minimum Size Subarray Sum
- Problem 2: Longest Substring Without Repeating Characters
- Problem 1: 3Sum
- Problem 2: Container With Most Water
- Problem 1: Linked List Cycle
- Problem 2: Middle of the Linked List
- Problem 1: Merge Intervals
- Problem 2: Insert Interval
- Problem 1: Find All Numbers Disappeared in an Array
- Problem 2: Find the Duplicate Number
- Problem 1: Reverse Linked List
- Problem 2: Reverse Nodes in k-Group
- Problem 1: Binary Tree Level Order Traversal
- Problem 2: Binary Tree Zigzag Level Order Traversal
- Problem 1: Binary Tree Maximum Path Sum
- Problem 2: Path Sum
- Problem 1: Course Schedule
- Problem 2: Alien Dictionary
- Problem 1: Search in Rotated Sorted Array
- Problem 2: Find Minimum in Rotated Sorted Array
- Problem 1: Word Search
- Problem 2: Combination Sum
- Problem 1: Shortest Path in Binary Matrix
- Problem 2: Word Ladder
- Problem 1: Number of Connected Components in an Undirected Graph
- Problem 2: Friend Circles
- Problem 1: House Robber
- Problem 2: Climbing Stairs
- Problem 1: Longest Common Subsequence
- Problem 2: Unique Paths
- Problem 1: Jump Game
- Problem 2: Partition Labels
- Problem 1: Maximum Subarray
- Problem 2: Maximum Product Subarray
- Problem 1: Spiral Matrix
- Problem 2: Rotate Image
- Problem 1: Single Number
- Problem 2: Counting Bits
- Problem 1: Implement Trie (Prefix Tree)
- Problem 2: Word Search II
- Problem 1: Merge k Sorted Lists
- Problem 2: Top K Frequent Elements
- Problem 1: Daily Temperatures
- Problem 2: Largest Rectangle in Histogram
- Problem 1: Linked List Random Node
- Problem 2: Random Pick Index
- Problem 1: Network Delay Time
- Problem 2: Find the City With the Smallest Number of Neighbors at a Threshold Distance
- Problem 1: Partition Equal Subset Sum
- Problem 2: Last Stone Weight II
- Problem 1: Path With Minimum Effort
- Problem 2: Cheapest Flights Within K Stops
- Problem 1: Network Delay Time
- Problem 2: Cheapest Flights Within K Stops
- Problem 1: Binary Tree Zigzag Level Order Traversal
- Problem 2: Diagonal Traverse
- Problem 1: Longest Increasing Subsequence
- Problem 2: Russian Doll Envelopes
- Problem 1: Kth Largest Element in an Array
- Problem 2: Top K Frequent Elements
These patterns and problems will help you identify and solve common coding interview challenges.
- Fibonacci Sequence
- Kadane's Algorithm
- 0/1 Knapsack
- Unbounded Knapsack
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence (LIS)
- Palindromic Subsequence
- Edit Distance
- Subset Sum
- String Partition
- Catalan Numbers
- Matrix Chain Multiplication
- Count Distinct Ways
- DP on Grids
- DP on Trees
- DP on Graphs
- Digit DP
- Bitmasking DP
- Probability DP
- State Machine DP
Here is another DSA cheat sheet for time and space complxity of popular data structures and algorithms
And here is one for Java developers