Skip to main content
CodeOath

Practice

Every problem here runs against a real compiler, not a guess.

Actually compiled and executed — not pattern-matched against expected output — in JavaScript, TypeScript, Python, C#, Java, Go, Rust and C++, plus live SQL queries against a real database. If it would fail in a real interview, it fails here too. Looking for front-end/CSS practice instead of algorithms? Try UI Challenges.

77 of 77

EasycpprustgojavatypescriptJSPYC#

FizzBuzz

Fundamentals

Illustration with sample data
EasycpprustgojavatypescriptJSPYC#

Reverse a String

Strings

EasycpprustgojavatypescriptJSPYC#

Valid Palindrome

Strings

EasycpprustgojavatypescriptJSPYC#

Find All Duplicates

Arrays · Hash Table

MediumcpprustgojavatypescriptJSPYC#

Flatten Array One Level

Arrays

EasycpprustgojavatypescriptJSPYC#

Count Vowels

Strings

MediumcpprustgojavatypescriptJSPYC#

Count Duplicate Characters

Strings · Hash Table

MediumcpprustgojavatypescriptJSPYC#

Count Duplicate Array Members

Arrays · Hash Table

MediumcpprustgojavatypescriptJSPYC#

Find Duplicate Character Positions

Strings · Hash Table

MediumcpprustgojavatypescriptJSPYC#

Find Duplicate Array Positions

Arrays · Hash Table

EasycpprustgojavatypescriptJSPYC#

Two Sum

Arrays · Hash Table

EasycpprustgojavatypescriptJSPYC#

Valid Parentheses

Strings · Stacks

MediumcpprustgojavatypescriptJSPYC#

Maximum Subarray

Arrays · Dynamic Programming

EasycpprustgojavatypescriptJSPYC#

Best Time to Buy and Sell Stock

Arrays · Dynamic Programming

EasycpprustgojavatypescriptJSPYC#

Climbing Stairs

Dynamic Programming

EasycpprustgojavatypescriptJSPYC#

Binary Search

Binary Search

EasycpprustgojavatypescriptJS

Missing Number

Arrays · Math

MediumcpprustgojavatypescriptJS

Longest Substring Without Repeating Characters

Strings · Sliding Window

EasycpprustgojavatypescriptJS

Contains Duplicate

Arrays · Hash Table

EasycpprustgojavatypescriptJS

Valid Anagram

Strings · Hash Table

MediumcpprustgojavatypescriptJS

Product of Array Except Self

Arrays

MediumcpprustgojavatypescriptJS

Merge Intervals

Arrays · Sorting

MediumcpprustgojavatypescriptJS

Number of Islands

Graphs · BFS · DFS · Matrix

EasycpprustgojavatypescriptJS

Majority Element

Arrays

EasycpprustgojavatypescriptJS

Move Zeroes

Arrays · Two Pointers

EasycpprustgojavatypescriptJS

Single Number

Arrays · Bit Manipulation

MediumcpprustgojavatypescriptJS

Kth Largest Element in an Array

Arrays · Sorting · Heaps & Priority Queues

MediumcpprustgojavatypescriptJS

Rotate Array

Arrays

EasycpprustgojavatypescriptJSPYC#

Invert Binary Tree

Trees · Recursion

EasycpprustgojavatypescriptJSPYC#

Reverse Linked List

Linked Lists

EasycpprustgojavatypescriptJSPYC#

Linked List Cycle

Linked Lists · Two Pointers

MediumcpprustgojavatypescriptJSPYC#

Coin Change

Dynamic Programming

MediumcpprustgojavatypescriptJSPYC#

House Robber

Dynamic Programming

MediumcpprustgojavatypescriptJSPYC#

House Robber II

Dynamic Programming

MediumcpprustgojavatypescriptJSPYC#

Word Break

Dynamic Programming · Strings

MediumcpprustgojavatypescriptJSPYC#

Longest Increasing Subsequence

Dynamic Programming

MediumcpprustgojavatypescriptJSPYC#

Unique Paths

Dynamic Programming

MediumcpprustgojavatypescriptJSPYC#

Jump Game

Dynamic Programming · Greedy

MediumcpprustgojavatypescriptJSPYC#

Longest Common Subsequence

Dynamic Programming · Strings

EasycpprustgojavatypescriptJSPYC#

Maximum Depth of Binary Tree

Trees

EasycpprustgojavatypescriptJSPYC#

Same Tree

Trees

EasycpprustgojavatypescriptJSPYC#

Subtree of Another Tree

Trees

MediumcpprustgojavatypescriptJSPYC#

Validate Binary Search Tree

Trees · Binary Search Tree

MediumcpprustgojavatypescriptJSPYC#

Binary Tree Level Order Traversal

Trees · BFS

MediumcpprustgojavatypescriptJSPYC#

Kth Smallest Element in a BST

Trees · Binary Search Tree

MediumcpprustgojavatypescriptJSPYC#

Lowest Common Ancestor of a BST

Trees · Binary Search Tree

EasycpprustgojavatypescriptJSPYC#

Merge Two Sorted Lists

Linked Lists

MediumcpprustgojavatypescriptJSPYC#

Remove Nth Node From End of List

Linked Lists · Two Pointers

EasycpprustgojavatypescriptJSPYC#

Middle of the Linked List

Linked Lists · Two Pointers

EasycpprustgojavatypescriptJSPYC#

Palindrome Linked List

Linked Lists · Two Pointers

MediumcpprustgojavatypescriptJSPYC#

Course Schedule

Graphs · Topological Sort

MediumcpprustgojavatypescriptJSPYC#

Number of Connected Components in an Undirected Graph

Graphs · Union-Find

EasycpprustgojavatypescriptJSPYC#

Flood Fill

Graphs · DFS · Matrix

MediumcpprustgojavatypescriptJSPYC#

Rotting Oranges

Graphs · BFS · Matrix

MediumcpprustgojavatypescriptJSPYC#

Rotate Image

Matrix

MediumcpprustgojavatypescriptJSPYC#

Spiral Matrix

Matrix

MediumcpprustgojavatypescriptJSPYC#

Set Matrix Zeroes

Matrix

EasycpprustgojavatypescriptJSPYC#

Number of 1 Bits

Bit Manipulation

EasycpprustgojavatypescriptJSPYC#

Counting Bits

Bit Manipulation · Dynamic Programming

EasycpprustgojavatypescriptJSPYC#

Reverse Bits

Bit Manipulation

MediumcpprustgojavatypescriptJSPYC#

Sum of Two Integers

Bit Manipulation

MediumcpprustgojavatypescriptJSPYC#

3Sum

Arrays · Two Pointers

MediumcpprustgojavatypescriptJSPYC#

Container With Most Water

Arrays · Two Pointers

MediumcpprustgojavatypescriptJSPYC#

Group Anagrams

Arrays · Strings · Hash Table

MediumcpprustgojavatypescriptJSPYC#

Longest Palindromic Substring

Strings

MediumcpprustgojavatypescriptJSPYC#

Search in Rotated Sorted Array

Arrays · Binary Search

MediumcpprustgojavatypescriptJSPYC#

Top K Frequent Elements

Arrays · Hash Table · Heaps & Priority Queues

MediumSQL

Rank Employees By Department Salary

SQL · Window Functions