Ryan Tan | LinkedIn | GitHub

Currently: Wisq

Previously: Citadel, Airtable, Uber, Rippling, University of Waterloo


Sole designer, author, maintainer, and instructor of LeetCode's Interview Crash Course: Data Structures and Algorithms. I have tens of thousands of students with an over 99.7% satisfaction rate. You can find some student testimonials here.


Top 0.004% in the world by LeetCode contest rating. Top 4 in the USA.


Notable contest finishes:


Biweekly 102: 1 / 18790


Weekly 359: 2 / 27133


Weekly 355: 3 / 24258


Weekly 351: 3 / 21929


Weekly 347: 3 / 20949


Author of LeetCode's Dynamic Programming Explore Card, the Daily Coding Challenge (Nov 2022 - Aug 2023), and the following official Study Plans:
LeetCode 75
Top Interview 150
Top 100 Liked
Premium Algo 100
Programming Skills
Graph Theory
Dynamic Programming
Dynamic Programming Grandmaster
Binary Search


Author of the following official LeetCode solution articles:
Total views: 4M+
Average rating: 4.7/5.0
5. Longest Palindromic Substring
17. Letter Combinations of a Phone Number
30. Substring with Concatenation of All Words
46. Permutations
51. N-Queens
52. N-Queens II
53. Maximum Subarray
65. Valid Number
68. Text Justification
77. Combinations
139. Word Break
146. LRU Cache
215. Kth Largest Element in an Array
255. Verify Preorder Sequence in Binary Search Tree
272. Closest Binary Search Tree Value II
276. Paint Fence
300. Longest Increasing Subsequence
325. Maximum Size Subarray Sum Equals k
343. Integer Break
417. Pacific Atlantic Water Flow
433. Minimum Genetic Mutation
435. Non-overlapping Intervals
499. The Maze III
501. Find Mode in Binary Search Tree
515. Find Largest Value in Each Tree Row
542. 01 Matrix
616. Add Bold Tag in String
642. Design Search Autocomplete System
658. Find K Closest Elements
680. Valid Palindrome II
703. Kth Largest Element in a Stream
739. Daily Temperatures
740. Delete and Earn
746. Min Cost Climbing Stairs
772. Basic Calculator III
847. Shortest Path Visiting All Nodes
901. Online Stock Span
935. Knight Dialer
1160. Find Words That Can Be Formed by Characters
1266. Minimum Time Visiting All Points
1269. Number of Ways to Stay in the Same Place After Some Steps
1287. Element Appearing More Than 25% In Sorted Array
1356. Sort Integers by The Number of 1 Bits
1361. Validate Binary Tree Nodes
1420. Build Array Where You Can Find The Maximum Exactly K Comparisons
1422. Maximum Score After Splitting a String
1424. Diagonal Traverse II
1425. Constrained Subsequence Sum
1434. Number of Ways to Wear Different Hats to Each Other
1436. Destination City
1441. Build an Array With Stack Operations
1448. Count Good Nodes in Binary Tree
1458. Max Dot Product of Two Subsequences
1464. Maximum Product of Two Elements in an Array
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
1496. Path Crossing
1503. Last Moment Before All Ants Fall Out of a Plank
1512. Number of Good Pairs
1535. Find the Winner of an Array Game
1561. Maximum Number of Coins You Can Get
1582. Special Positions in a Binary Matrix
1611. Minimum One Bit Operations to Make Integers Zero
1624. Largest Substring Between Two Equal Characters
1630. Arithmetic Subarrays
1685. Sum of Absolute Differences in a Sorted Array
1688. Count of Matches in Tournament
1716. Calculate Money in Leetcode Bank
1727. Largest Submatrix With Rearrangements
1743. Restore the Array From Adjacent Pairs
1758. Minimum Changes To Make Alternating Binary String
1759. Count Number of Homogenous Substrings
1793. Maximum Score of a Good Subarray
1814. Count Nice Pairs in an Array
1838. Frequency of the Most Frequent Element
1846. Maximum Element After Decreasing and Rearranging
1887. Reduction Operations to Make the Array Elements Equal
1897. Redistribute Characters to Make All Strings Equal
1903. Largest Odd Number in String
1913. Maximum Product Difference Between Two Pairs
1921. Eliminate Maximum Number of Monsters
1930. Unique Length-3 Palindromic Subsequences
1962. Remove Stones to Minimize the Total
1980. Find Unique Binary String
2009. Minimum Number of Operations to Make Array Continuous
2038. Remove Colored Pieces if Both Neighbors are the Same Color
2050. Parallel Courses III
2251. Number of Flowers in Full Bloom
2742. Painting the Walls