CodeOath

Practice

Code Lab

77 problems, real JavaScript execution and live SQL queries against a real database, right in your browser. Python and C# support is coming soon. Looking for front-end/CSS practice instead of algorithms? Try UI Challenges.

ProblemLanguagesDifficulty
FizzBuzz
fundamentals
JS
Easy
Reverse a String
strings
JS
Easy
Valid Palindrome
strings
JS
Easy
Find All Duplicates
arrayshash-table
JS
Easy
Flatten Array One Level
arrays
JS
Medium
Count Vowels
strings
JS
Easy
Count Duplicate Characters
stringshash-table
JS
Medium
Count Duplicate Array Members
arrayshash-table
JS
Medium
Find Duplicate Character Positions
stringshash-table
JS
Medium
Find Duplicate Array Positions
arrayshash-table
JS
Medium
Two Sum
arrayshash-table
JS
Easy
Valid Parentheses
stringsstack
JS
Easy
Maximum Subarray
arraysdynamic-programming
JS
Medium
Best Time to Buy and Sell Stock
arraysdynamic-programming
JS
Easy
Climbing Stairs
dynamic-programming
JS
Easy
Binary Search
binary-search
JS
Easy
Missing Number
arraysmath
JS
Easy
Longest Substring Without Repeating Characters
stringssliding-window
JS
Medium
Contains Duplicate
arrayshash-table
JS
Easy
Valid Anagram
stringshash-table
JS
Easy
Product of Array Except Self
arrays
JS
Medium
Merge Intervals
arrayssorting
JS
Medium
Number of Islands
graphbfs-dfsmatrix
JS
Medium
Majority Element
arrays
JS
Easy
Move Zeroes
arraystwo-pointers
JS
Easy
Single Number
arraysbit-manipulation
JS
Easy
Kth Largest Element in an Array
arrayssortingheap
JS
Medium
Rotate Array
arrays
JS
Medium
Invert Binary Tree
treesrecursion
JS
Easy
Reverse Linked List
linked-list
JS
Easy
Linked List Cycle
linked-listtwo-pointers
JS
Easy
Coin Change
dynamic-programming
JS
Medium
House Robber
dynamic-programming
JS
Medium
House Robber II
dynamic-programming
JS
Medium
Word Break
dynamic-programmingstrings
JS
Medium
Longest Increasing Subsequence
dynamic-programming
JS
Medium
Unique Paths
dynamic-programming
JS
Medium
Jump Game
dynamic-programminggreedy
JS
Medium
Longest Common Subsequence
dynamic-programmingstrings
JS
Medium
Maximum Depth of Binary Tree
trees
JS
Easy
Same Tree
trees
JS
Easy
Subtree of Another Tree
trees
JS
Easy
Validate Binary Search Tree
treesbinary-search-tree
JS
Medium
Binary Tree Level Order Traversal
treesbfs
JS
Medium
Kth Smallest Element in a BST
treesbinary-search-tree
JS
Medium
Lowest Common Ancestor of a BST
treesbinary-search-tree
JS
Medium
Merge Two Sorted Lists
linked-list
JS
Easy
Remove Nth Node From End of List
linked-listtwo-pointers
JS
Medium
Middle of the Linked List
linked-listtwo-pointers
JS
Easy
Palindrome Linked List
linked-listtwo-pointers
JS
Easy
Course Schedule
graphstopological-sort
JS
Medium
Number of Connected Components in an Undirected Graph
graphsunion-find
JS
Medium
Flood Fill
graphsdfsmatrix
JS
Easy
Rotting Oranges
graphsbfsmatrix
JS
Medium
Rotate Image
matrix
JS
Medium
Spiral Matrix
matrix
JS
Medium
Set Matrix Zeroes
matrix
JS
Medium
Number of 1 Bits
bit-manipulation
JS
Easy
Counting Bits
bit-manipulationdynamic-programming
JS
Easy
Reverse Bits
bit-manipulation
JS
Easy
Sum of Two Integers
bit-manipulation
JS
Medium
3Sum
arraystwo-pointers
JS
Medium
Container With Most Water
arraystwo-pointers
JS
Medium
Group Anagrams
arraysstringshash-table
JS
Medium
Longest Palindromic Substring
strings
JS
Medium
Search in Rotated Sorted Array
arraysbinary-search
JS
Medium
Top K Frequent Elements
arrayshash-tableheap
JS
Medium
Select Every Sales Employee
sql
SQL
Easy
Employee Count Per Department
sql
SQL
Easy
Employees With No Salary
sql
SQL
Easy
Average Salary Per Department
sql
SQL
Medium
Employees Above Company Average
sql
SQL
Medium
Rank Employees By Department Salary
sqlwindow-functions
SQL
Medium
Employees Above Their Own Department's Average
sqlsubqueries
SQL
Hard
Union Employee and Department Names
sql
SQL
Easy
Departments With More Than One Employee
sql
SQL
Medium
Department With Highest Average Salary
sql
SQL
Medium