CSE
DSA practice and competitive programming
Practice data structures and algorithms the way contests and coding interviews test them: under a clock, against hidden test cases, with a rating that tells you where you stand.
What you do here
Live 1v1 coding duels
Get matched with someone near your rating, solve the same problem, and the first correct solution wins. Your Elo rating moves after every duel.
Untimed practice
Pick any problem by topic and difficulty and solve it at your own pace. Hidden test cases include stress tests, so a slow solution gets a time limit verdict like it would in a contest.
Seven languages
Python, C++, Java, JavaScript, Go, Rust and Verilog, judged in a sandbox with per-language time limits.
Step-by-step lessons
Guided lessons break a problem into steps, from the first observation to the final code, for when you are learning a pattern rather than racing it.
Topics covered
- Arrays and strings
- Hashing
- Two pointers and sliding window
- Binary search
- Stacks and queues
- Linked lists
- Trees and binary search trees
- Graphs, BFS and DFS
- Shortest paths
- Dynamic programming
- Greedy algorithms
- Heaps and priority queues
- Segment trees and Fenwick trees
- Number theory and combinatorics
Questions
- Which languages can I use?
- Python, C++, Java, JavaScript, Go and Rust for DSA problems. Verilog is available for digital design problems.
- Do I have to play live duels?
- No. Practice mode lets you solve any problem untimed and unrated. Duels are there when you want the pressure.