JavaScriptReactAngularVueSvelteCSSHTMLTypeScript

JavaScript DSA Interview Questions

Coding questions on data structures and algorithms, using JavaScript.
Solved by ex-interviewers
Test cases
Code in browser

Questions List

JavaScript Interview GuidesExplore our starter guides to get a solid grasp of JavaScript interview prep before jumping into practice.
0/5 guides
GUIDES
  • Selection SortImplement a function that performs a selection sort
    Languages
  • StackImplement a stack data structure containing the common stack methods
    Languages
  • Count Set Bits in a Binary NumberImplement a function to find set bits in binary representation of a given integer
    Languages
  • Find Duplicates in ArrayImplement a function to check if there are any duplicate numbers in the array
    Languages
  • Find Missing Number in SequenceImplement a function to find the missing element in a sorted array
    Languages
  • Insertion SortImplement a function that performs an insertion sort
    Languages
  • Optimal Stock TradingImplement a function to find the maximum profit achievable by buying and selling a stock once
    Languages
  • Pair sumImplement a function to find two numbers within an array of integers that add up to a target integer
    Languages
  • String AnagramImplement a function to determine if two strings are anagram of each other
    Languages
  • Binary Tree Maximum DepthImplement a function to find the maximum depth of a binary tree
    Languages
  • Flip Binary TreeImplement a function to flip the nodes in a binary tree
    Languages
  • Staircase Climbing CombinationsImplement a function to find the number of ways to reach at the top of staircase
    Languages
  • Balanced BracketsImplement a function to determine if a string contains balanced brackets
    Languages
  • Binary Tree EqualImplement a function to determine whether two binary trees are equal
    Languages
  • Bit CountingImplement a function to find number of set bits from 0 to n
    Languages
  • Bit ReversalImplement a function to flip the order of the bits in a given number
    Languages
  • Linked List ReversalImplement a function to reverse a linked list
    Languages
  • String PalindromeImplement a function to determine if a string is a palindrome
    Languages
  • Linked List Detect CycleImplement a function to detect if there are cycles in a linked list
    Languages
  • Binary Tree SubtreeImplement a function to check if a binary tree is a subtree of another binary tree
    Languages
  • Linked Lists Combine Two SortedImplement a function to combine two sorted linked list
    Languages
  • Meeting CalendarImplement a function to check if all meetings can be attended
    Languages
  • Array Product Excluding CurrentImplement a function to find the product of elements in an array excluding the current element
    Languages
  • Binary SearchImplement a function that performs binary search on an array of numbers
    Languages
  • Breadth-first SearchImplement a breadth-first search algorithm that traverses a directed graph in a breadth-first manner
    Languages
  • Depth-first SearchImplement a depth-first search algorithm that traverses a directed graph in a depth-first manner
    Languages
  • Heap SortImplement a function that performs a heap sort
    Languages
  • Is the Graph a TreeImplement a function to determine if a graph is a valid tree
    Languages
  • Maximum Water Trapped Between WallsImplement a function to find the maximum water volume between two walls in an array of walls
    Languages
  • QueueImplement a queue data structure containing the common queue methods
    Languages
  • Merge SortImplement a function that performs a recursive merge sort
    Languages
  • Quick SortImplement a function that performs a recursive quick sort
    Languages
  • Topological SortImplement a function that performs a topological sort
    Languages
  • Binary Tree Level Order TraversalImplement a function to find the level order traversal of a binary tree
    Languages
  • Maximum Sum in Contiguous ArrayImplement a function to find the subarray with the maximum sum
    Languages
  • Smallest element in rotated sorted arrayImplement a function to find the smallest element in rotated sorted array
    Languages
  • Find Element in Rotated ArrayImplement a function to find an integer in a rotated sorted array
    Languages
  • Maximum Product in Contiguous ArrayImplement a function to find the subarray which has the largest product
    Languages
  • Binary Search Tree Kth Smallest ElementImplement a function to find the kth smallest node in a BST
    Languages
  • Binary Search Tree Lowest Common AncestorImplement a function to find the LCA in a binary search tree
    Languages
  • Count Islands in a GridImplement a function to count distinct islands in a 2D binary grid
    Languages
  • Delete Nth Node from End of Linked ListImplement a function to delete the nth node from the end of a linked list
    Languages
  • Distinct Paths in GridImplement a function to calculate distinct paths for a robot moving on an m x n grid
    Languages
  • Matrix ZeroingImplement a function to set matrix rows and columns to zero
    Languages
  • Merge Overlapping IntervalsImplement a function to merge overlapping intervals
    Languages
  • Most Common ElementsImplement a function to determine the most common elements in an integer array
    Languages
  • Neighborhood TheftImplement a function to find maximum money to rob without alerting police
    Languages
  • Rearrange Linked ListImplement a function to rearrange the nodes in a linked list
    Languages
  • Sum Without AdditionImplement a function to find the sum of two integers without using + and - operator
    Languages
  • Triplet SumImplement a function to find all unique triplets with distinct indices that sum to 0
    Languages
  • Validate Binary Search TreeImplement a function to validate whether a binary tree is a valid binary search tree
    Languages
  • Combinations for Target SumImplement a function to count combinations that sum to the target
    Languages
  • Course DependencyImplement a function to check if all courses can be completed given prerequisites
    Languages
  • Decode MessageImplement a function to count ways to decode a numeric string
    Languages
  • Longest Consecutive Number SequenceImplement a function to find the length of the longest consecutive number sequence
    Languages
  • NEW
    Longest Increasing SubsequenceImplement a function to find the length of the longest increasing subsequence
    Languages
  • NEW
    Minimum Coins for ChangeImplement a function to return minimum coins needed to make the given amount
    Languages
  • Palindromic SubstringsImplement a function to count all palindromic substrings in a string
    Languages
  • Segment WordsImplement a function to check whether a string be formed from dictionary words
    Languages
  • String Anagram GroupsImplement a function to group an array of strings into anagrams
    Languages
  • Task CoordinationImplement a function to find minimum intervals for tasks with cooldown
    Languages
  • Trie (Prefix Tree)Implement a trie-prefix-tree with insert, search, and starts with functionality
    Languages
  • Binary Tree Rebuilding from Preorder and Inorder TraversalsImplement a function to construct a binary tree from preorder and inorder traversals
    Languages
  • Disjoint IntervalsImplement a function to determine the minimum amount of removals to get non-overlapping intervals
    Languages
  • End of Array ReachableImplement a function to determine if the end of the array is reachable
    Languages
  • Find the Longest Palindromic SubstringImplement a function to find the longest palindromic substring
    Languages
  • Find Word in GridImplement a function to check the existence of a word in a grid
    Languages
  • Graph Count Connected ComponentsImplement a function to count connected components in a graph
    Languages
  • Longest Common SubsequenceImplement a function to find the longest common subsequence in two strings
    Languages
  • Longest Non-repeating SubstringImplement a function to find the length of longest substring with unique characters
    Languages
  • Longest Repeating Substring After ReplacementsImplement a function to find the longest uniform substring after up to k replacements
    Languages
  • Matrix RotationImplement a function to rotate the given matrix by 90 degrees
    Languages
  • Matrix Spiral TraversalImplement a function to traverse the matrix in spiral order
    Languages
  • Merge New IntervalImplement a function to insert a new interval in the given intervals
    Languages
  • Neighborhood Theft (Circular)Implement a function to find maximum money to rob in circular houses without alerting police
    Languages
  • Ocean FlowImplement a function returning cells with water flow to both oceans
    Languages
  • Word FinderImplement a data structure where words can be added and support wildcard searching
    Languages
  • Graph CloneImplement a function to deeply clone a connected and undirected graph
    Languages
  • Minimum Meeting Rooms NeededImplement a function to find the minimum number of required conference rooms
    Languages
  • Binary Tree Serialization and DeserializationImplement a function to serialize and deserialize a binary tree
    Languages
  • Binary Tree Maximum Total PathImplement a function to find the maximum total of nodes in a binary tree path
    Languages
  • Find Words in GridImplement a function to find all the words present in the grid
    Languages
  • Linked Lists Combine K SortedImplement a function to combine k sorted linked lists
    Languages
  • Shortest Substring Containing CharactersImplement a function to return the smallest substring of a string containing all characters from another string
    Languages
  • Extraterrestrial LanguageImplement a function to verify and return an extraterrestrial language's alphabet order
    Languages
  • Number Stream MedianImplement a function to find the median of a dynamic stream of integers
    Languages

JavaScript Data Structures and Algorithms Interview Questions and Answers

Data structures and algorithms (DSA) interviews are an unavoidable part of software engineering roles, particularly for positions at big tech companies. As a front-end engineer, mastering DSA is crucial for writing efficient, optimized, and scalable code. However, many front-end developers find themselves prioritizing UI frameworks and JavaScript intricacies over algorithmic problem-solving, leading to less practice and confidence in DSA topics.

The lack of tailored DSA resources for front-end engineers further complicates preparation. Most DSA materials are written for general software engineering roles, focusing on backend-heavy languages like Python, Java, and C++. While these are excellent for algorithmic explanations, they often overlook the specific tools and contexts relevant to front-end engineers.

Bridging the Gap for Front-End Engineers

To address these challenges, we've developed a comprehensive resource of JavaScript and TypeScript-focused data structures and algorithms questions tailored specifically for front-end developers. Created by former senior engineers and ex-interviewers at top tech companies, our materials are designed to help front-end engineers build confidence in DSA while staying grounded in the tools they use daily.

Key features of our resources include:

  1. Tailored to JavaScript and TypeScript: All solutions and explanations are written in JavaScript and TypeScript, the primary languages used in front-end development. This ensures greater accessibility and relevance for front-end engineers.
  2. High-quality content by experts: Each question is carefully crafted by experienced engineers who have conducted interviews for leading tech companies, guaranteeing the highest quality and alignment with real interview standards.
  3. Front end specific contexts: The problems and solutions incorporate scenarios and constraints that front-end developers are likely to encounter in the real-world, ensuring the skills are practical and directly applicable.

Comprehensive Coverage of DSA Topics

Our resource spans a wide range of topics, from fundamental data structures to advanced algorithms. These include:

Key Data Structures:

  • Arrays: Understand how to manipulate and traverse arrays efficiently, solving problems like subarray sums and sliding window patterns.
  • Linked Lists: Gain insights into traversing, inserting, and deleting nodes in singly and doubly linked lists.
  • Stacks and Queues: Learn their applications in problems like balancing parentheses, breadth-first search, and undo functionality.
  • Trees and Graphs: Master tree traversal techniques (inorder, preorder, postorder), shortest path algorithms (Dijkstra, BFS), and graph search techniques.
  • Hash Tables: Solve problems involving efficient lookups, duplicates detection, and frequency counts.

Core Algorithms:

  • Sorting algorithms: Implement QuickSort, MergeSort, and Bubble Sort while understanding their time and space complexities.
  • Searching algorithms: Explore binary search, linear search, and their applications in real-world scenarios.
  • Recursion and dynamic programming: Solve problems involving recursion trees, overlapping subproblems, and dynamic programming patterns like knapsack, Fibonacci, and subsequence detection.

Real-Time Practice and Feedback

To make your preparation seamless and efficient, our platform provides an in-browser coding workspace that enables you to practice coding directly without any setup. Key features include:

  1. Instant feedback: Write code, run it against comprehensive automated test cases, and receive immediate feedback on correctness and performance. This mimics real interview conditions and helps you iterate faster.
  2. Detailed explanations: Each question is accompanied by a step-by-step breakdown, multiple solution approaches, and best practices, ensuring you grasp the underlying concepts and patterns thoroughly.
  3. Practical focus: Questions are designed to reflect real-world problem-solving scenarios, ensuring your skills are directly transferable to on-the-job challenges.

Benefits of Using Our Resource

  • Master DSA with JavaScript and TypeScript: Learn to implement efficient algorithms and data structures in the languages most relevant to your front-end role.
  • Confidence in interviews: Build confidence by practicing with problems modeled after actual interview questions asked at leading tech companies.
  • Faster learning: Leverage expertly crafted explanations and immediate feedback to accelerate your learning curve.
  • Improve practical front end skills: Tackle challenges that improve your ability to write performant code and design scalable solutions, both critical for front-end development.

Related lists

Check out other lists of questions below if you're looking for something more specific: