Skip to content

Repository files navigation

LeetCode in Go

LeetCode Online Judge is a website containing many algorithm questions. Most of them are real interview questions of Google, Facebook, LinkedIn, Apple, etc. This repo shows my solutions in Go with the code style strictly follows the Google Golang Style Guide. Please feel free to reference and STAR to support this repo, thank you!

GitHub All ReleasesSupport Go version

GitHub

支持 Progressive Web Apps 和 Dark Mode 的题解电子书《LeetCode Cookbook》 Online Reading

离线版本的电子书《LeetCode Cookbook》PDF Download here

通过 iOS / Android 浏览器安装 PWA 版《LeetCode Cookbook》至设备桌面随时学习

Data Structures

标识了 ✅ 的专题是完成所有题目了的,没有标识的是还没有做完所有题目的

logo

数据结构变种相关题目讲解文章
顺序线性表:向量
单链表1. 双向链表
2. 静态链表
3. 对称矩阵
4. 稀疏矩阵
哈希表1. 散列函数
2. 解决碰撞/填充因子
栈和队列1. 广义栈
2. 双端队列
队列1. 链表实现
2. 循环数组实现
3. 双端队列
字符串1. KMP算法
2. 有限状态自动机
3. 模式匹配有限状态自动机
4. BM 模式匹配算法
5. BM-KMP 算法
6. BF 算法
1. 二叉树
2. 并查集
3. Huffman 树
数组实现的堆1. 极大堆和极小堆
2. 极大极小堆
3. 双端堆
4. d 叉堆
树实现的堆1. 左堆
2. 扁堆
3. 二项式堆
4. 斐波那契堆
5. 配对堆
查找1. 哈希表
2. 跳跃表
3. 排序二叉树
4. AVL 树
5. B 树 / B+ 树 / B* 树
6. AA 树
7. 红黑树
8. 排序二叉堆
9. Splay 树
10. 双链树
11. Trie 树
12. R 树
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Algorithm

算法具体类型相关题目讲解文章
排序算法1. 冒泡排序
2. 插入排序
3. 选择排序
4. 希尔 Shell 排序
5. 快速排序
6. 归并排序
7. 堆排序
8. 线性排序算法
9. 自省排序
10. 间接排序
11. 计数排序
12. 基数排序
13. 桶排序
14. 外部排序 - k 路归并败者树
15. 外部排序 - 最佳归并树
递归与分治1. 二分搜索/查找
2. 大整数的乘法
3. Strassen 矩阵乘法
4. 棋盘覆盖
5. 合并排序
6. 快速排序
7. 线性时间选择
8. 最接近点对问题
9. 循环赛日程表
动态规划1. 矩阵连乘问题
2. 最长公共子序列
3. 最大子段和
4. 凸多边形最优三角剖分
5. 多边形游戏
6. 图像压缩
7. 电路布线
8. 流水作业调度
9. 0-1 背包问题/背包九讲
10. 最优二叉搜索树
11. 动态规划加速原理
12. 树型 DP
贪心1. 活动安排问题
2. 最优装载
3. 哈夫曼编码
4. 单源最短路径
5. 最小生成树
6. 多机调度问题
回溯法1. 装载问题
2. 批处理作业调度
3. 符号三角形问题
4. n 后问题
5. 0-1 背包问题
6. 最大团问题
7. 图的 m 着色问题
8. 旅行售货员问题
9. 圆排列问题
10. 电路板排列问题
11. 连续邮资问题
搜索1. 枚举
2. DFS
3. BFS
4. 启发式搜索
随机化1. 随机数
2. 数值随机化算法
3. Sherwood 舍伍德算法
4. Las Vegas 拉斯维加斯算法
5. Monte Carlo 蒙特卡罗算法
1. 计算 π 值
2. 计算定积分
3. 解非线性方程组
4. 线性时间选择算法
5. 跳跃表
6. n 后问题
7. 整数因子分解
8. 主元素问题
9. 素数测试
图论1. 遍历 DFS / BFS
2. AOV / AOE 网络
3. Kruskal 算法(最小生成树)
4. Prim 算法(最小生成树)
5. Boruvka 算法(最小生成树)
6. Dijkstra 算法(单源最短路径)
7. Bellman-Ford 算法(单源最短路径)
8. SPFA 算法(单源最短路径)
9. Floyd 算法(多源最短路径)
10. Johnson 算法(多源最短路径)
11. Fleury 算法(欧拉回路)
12. Ford-Fulkerson 算法(最大网络流增广路)
13. Edmonds-Karp 算法(最大网络流)
14. Dinic 算法(最大网络流)
15. 一般预流推进算法
16. 最高标号预流推进 HLPP 算法
17. Primal-Dual 原始对偶算法(最小费用流)18. Kosaraju 算法(有向图强连通分量)
19. Tarjan 算法(有向图强连通分量)
20. Gabow 算法(有向图强连通分量)
21. 匈牙利算法(二分图匹配)
22. Hopcroft-Karp 算法(二分图匹配)
23. kuhn munkras 算法(二分图最佳匹配)
24. Edmonds’ Blossom-Contraction 算法(一般图匹配)
1. 图遍历
2. 有向图和无向图的强弱连通性
3. 割点/割边
3. AOV 网络和拓扑排序
4. AOE 网络和关键路径
5. 最小代价生成树/次小生成树
6. 最短路径问题/第 K 短路问题
7. 最大网络流问题
8. 最小费用流问题
9. 图着色问题
10. 差分约束系统
11. 欧拉回路
12. 中国邮递员问题
13. 汉密尔顿回路
14. 最佳边割集/最佳点割集/最小边割集/最小点割集/最小路径覆盖/最小点集覆盖
15. 边覆盖集
16. 二分图完美匹配和最大匹配问题
17. 仙人掌图
18. 弦图
19. 稳定婚姻问题
20. 最大团问题
数论1. 最大公约数
2. 最小公倍数
3. 分解质因数
4. 素数判定
5. 进制转换
6. 高精度计算
7. 整除问题
8. 同余问题
9. 欧拉函数
10. 扩展欧几里得
11. 置换群
12. 母函数
13. 离散变换
14. 康托展开
15. 矩阵
16. 向量
17. 线性方程组
18. 线性规划
几何1. 凸包 - Gift wrapping
2. 凸包 - Graham scan
3. 线段问题
4. 多边形和多面体相关问题
NP 完全1. 计算模型
2. P 类与 NP 类问题
3. NP 完全问题
4. NP 完全问题的近似算法
1. 随机存取机 RAM
2. 随机存取存储程序机 RASP
3. 图灵机
4. 非确定性图灵机
5. P 类与 NP 类语言
6. 多项式时间验证
7. 多项式时间变换
8. Cook定理
9. 合取范式的可满足性问题 CNF-SAT
10. 3 元合取范式的可满足性问题 3-SAT
11. 团问题 CLIQUE
12. 顶点覆盖问题 VERTEX-COVER
13. 子集和问题 SUBSET-SUM
14. 哈密顿回路问题 HAM-CYCLE
15. 旅行售货员问题 TSP
16. 顶点覆盖问题的近似算法
17. 旅行售货员问题近似算法
18. 具有三角不等式性质的旅行售货员问题
19. 一般的旅行售货员问题
20. 集合覆盖问题的近似算法
21. 子集和问题的近似算法
22. 子集和问题的指数时间算法
23. 子集和问题的多项式时间近似格式
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

LeetCode Problems

一. 目录

#TitleSolutionAcceptanceDifficultyFrequency
0001Two SumGo45.6%Easy
0002Add Two NumbersGo33.9%Medium
0003Longest Substring Without Repeating CharactersGo30.4%Medium
0004Median of Two Sorted ArraysGo29.6%Hard
0005Longest Palindromic Substring29.4%Medium
0006ZigZag Conversion36.3%Medium
0007Reverse IntegerGo25.8%Easy
0008String to Integer (atoi)15.4%Medium
0009Palindrome NumberGo48.4%Easy
0010Regular Expression Matching26.8%Hard
0011Container With Most WaterGo50.8%Medium
0012Integer to Roman55.0%Medium
0013Roman to IntegerGo55.7%Easy
0014Longest Common Prefix35.4%Easy
00153SumGo26.8%Medium
00163Sum ClosestGo46.0%Medium
0017Letter Combinations of a Phone NumberGo46.8%Medium
00184SumGo33.6%Medium
0019Remove Nth Node From End of ListGo35.2%Medium
0020Valid ParenthesesGo38.9%Easy
0021Merge Two Sorted ListsGo53.5%Easy
0022Generate ParenthesesGo62.6%Medium
0023Merge k Sorted ListsGo40.2%Hard
0024Swap Nodes in PairsGo50.3%Medium
0025Reverse Nodes in k-GroupGo42.0%Hard
0026Remove Duplicates from Sorted ArrayGo45.1%Easy
0027Remove ElementGo48.2%Easy
0028Implement strStr()Go34.5%Easy
0029Divide Two IntegersGo16.4%Medium
0030Substring with Concatenation of All WordsGo(是否还有更优解)25.4%Hard
0031Next Permutation32.6%Medium
0032Longest Valid Parentheses28.4%Hard
0033Search in Rotated Sorted ArrayGo34.5%Medium
0034Find First and Last Position of Element in Sorted ArrayGo36.1%Medium
0035Search Insert PositionGo42.6%Easy
0036Valid SudokuGo48.7%Medium
0037Sudoku SolverGo43.5%Hard
0038Count and Say44.6%Easy
0039Combination SumGo56.0%Medium
0040Combination Sum IIGo48.1%Medium
0041First Missing PositiveGo32.0%Hard
0042Trapping Rain WaterGo48.8%Hard
0043Multiply Strings33.9%Medium
0044Wildcard Matching24.7%Hard
0045Jump Game II30.5%Hard
0046PermutationsGo63.5%Medium
0047Permutations IIGo46.4%Medium
0048Rotate ImageGo56.6%Medium
0049Group AnagramsGo56.8%Medium
0050Pow(x, n)Go30.3%Medium
0051N-QueensGo46.6%Hard
0052N-Queens IIGo57.8%Hard
0053Maximum SubarrayGo46.5%Easy
0054Spiral MatrixGo34.1%Medium
0055Jump GameGo34.6%Medium
0056Merge IntervalsGo39.3%Medium
0057Insert IntervalGo33.5%Hard
0058Length of Last Word32.6%Easy
0059Spiral Matrix IIGo53.8%Medium
0060Permutation SequenceGo38.4%Hard
0061Rotate ListGo30.0%Medium
0062Unique PathsGo54.1%Medium
0063Unique Paths IIGo34.5%Medium
0064Minimum Path SumGo54.4%Medium
0065Valid Number15.3%Hard
0066Plus OneGo43.0%Easy
0067Add BinaryGo45.2%Easy
0068Text Justification27.7%Hard
0069Sqrt(x)Go33.9%Easy
0070Climbing StairsGo47.8%Easy
0071Simplify PathGo32.6%Medium
0072Edit Distance44.8%Hard
0073Set Matrix Zeroes43.1%Medium
0074Search a 2D MatrixGo36.5%Medium
0075Sort ColorsGo47.3%Medium
0076Minimum Window SubstringGo34.6%Hard
0077CombinationsGo54.7%Medium
0078SubsetsGo61.9%Medium
0079Word SearchGo35.6%Medium
0080Remove Duplicates from Sorted Array IIGo43.9%Medium
0081Search in Rotated Sorted Array IIGo33.0%Medium
0082Remove Duplicates from Sorted List IIGo36.8%Medium
0083Remove Duplicates from Sorted ListGo45.4%Easy
0084Largest Rectangle in HistogramGo35.1%Hard
0085Maximal Rectangle37.7%Hard
0086Partition ListGo41.4%Medium
0087Scramble String33.7%Hard
0088Merge Sorted ArrayGo39.4%Easy
0089Gray CodeGo49.1%Medium
0090Subsets IIGo47.1%Medium
0091Decode WaysGo24.6%Medium
0092Reverse Linked List IIGo38.8%Medium
0093Restore IP AddressesGo35.6%Medium
0094Binary Tree Inorder TraversalGo63.3%Medium
0095Unique Binary Search Trees IIGo40.6%Medium
0096Unique Binary Search TreesGo52.9%Medium
0097Interleaving String31.5%Hard
0098Validate Binary Search TreeGo27.8%Medium
0099Recover Binary Search TreeGo39.6%Hard
0100Same TreeGo53.4%Easy
0101Symmetric TreeGo46.8%Easy
0102Binary Tree Level Order TraversalGo54.5%Medium
0103Binary Tree Zigzag Level Order TraversalGo48.3%Medium
0104Maximum Depth of Binary TreeGo66.0%Easy
0105Construct Binary Tree from Preorder and Inorder TraversalGo48.8%Medium
0106Construct Binary Tree from Inorder and Postorder TraversalGo47.1%Medium
0107Binary Tree Level Order Traversal IIGo53.5%Easy
0108Convert Sorted Array to Binary Search TreeGo57.9%Easy
0109Convert Sorted List to Binary Search TreeGo47.6%Medium
0110Balanced Binary TreeGo43.5%Easy
0111Minimum Depth of Binary TreeGo37.4%Easy
0112Path SumGo41.1%Easy
0113Path Sum IIGo46.6%Medium
0114Flatten Binary Tree to Linked ListGo49.2%Medium
0115Distinct Subsequences38.2%Hard
0116Populating Next Right Pointers in Each Node45.2%Medium
0117Populating Next Right Pointers in Each Node II39.1%Medium
0118Pascal's Triangle52.4%Easy
0119Pascal's Triangle II49.0%Easy
0120TriangleGo44.1%Medium
0121Best Time to Buy and Sell StockGo50.4%Easy
0122Best Time to Buy and Sell Stock IIGo56.9%Easy
0123Best Time to Buy and Sell Stock III37.4%Hard
0124Binary Tree Maximum Path SumGo34.3%Hard
0125Valid PalindromeGo36.7%Easy
0126Word Ladder IIGo22.1%Hard
0127Word LadderGo29.5%Medium
0128Longest Consecutive SequenceGo45.1%Hard
0129Sum Root to Leaf NumbersGo49.0%Medium
0130Surrounded RegionsGo28.1%Medium
0131Palindrome PartitioningGo47.5%Medium
0132Palindrome Partitioning II30.2%Hard
0133Clone Graph34.7%Medium
0134Gas Station38.5%Medium
0135Candy31.6%Hard
0136Single NumberGo65.5%Easy
0137Single Number IIGo52.4%Medium
0138Copy List with Random Pointer36.3%Medium
0139Word Break40.0%Medium
0140Word Break II32.6%Hard
0141Linked List CycleGo41.1%Easy
0142Linked List Cycle IIGo37.3%Medium
0143Reorder ListGo37.0%Medium
0144Binary Tree Preorder TraversalGo55.6%Medium
0145Binary Tree Postorder TraversalGo54.9%Hard
0146LRU Cache33.1%Medium
0147Insertion Sort ListGo41.1%Medium
0148Sort ListGo42.3%Medium
0149Max Points on a Line16.9%Hard
0150Evaluate Reverse Polish NotationGo36.3%Medium
0151Reverse Words in a StringGo21.9%Medium
0152Maximum Product SubarrayGo31.7%Medium
0153Find Minimum in Rotated Sorted ArrayGo45.1%Medium
0154Find Minimum in Rotated Sorted Array IIGo41.6%Hard
0155Min StackGo44.4%Easy
0156Binary Tree Upside Down55.0%Medium
0157Read N Characters Given Read434.2%Easy
0158Read N Characters Given Read4 II - Call multiple times33.7%Hard
0159Longest Substring with At Most Two Distinct Characters49.4%Medium
0160Intersection of Two Linked ListsGo40.5%Easy
0161One Edit Distance32.3%Medium
0162Find Peak ElementGo43.3%Medium
0163Missing Ranges24.3%Medium
0164Maximum GapGo35.4%Hard
0165Compare Version Numbers27.4%Medium
0166Fraction to Recurring Decimal21.6%Medium
0167Two Sum II - Input array is sortedGo54.0%Easy
0168Excel Sheet Column TitleGo31.0%Easy
0169Majority ElementGo58.7%Easy
0170Two Sum III - Data structure design33.5%Easy
0171Excel Sheet Column NumberGo54.6%Easy
0172Factorial Trailing ZeroesGo37.8%Easy
0173Binary Search Tree IteratorGo56.5%Medium
0174Dungeon GameGo32.3%Hard
0175Combine Two Tables60.7%Easy
0176Second Highest Salary31.6%Easy
0177Nth Highest Salary31.3%Medium
0178Rank Scores45.8%Medium
0179Largest NumberGo28.7%Medium
0180Consecutive Numbers39.7%Medium
0181Employees Earning More Than Their Managers56.8%Easy
0182Duplicate Emails62.0%Easy
0183Customers Who Never Order53.4%Easy
0184Department Highest Salary36.6%Medium
0185Department Top Three Salaries34.5%Hard
0186Reverse Words in a String II43.3%Medium
0187Repeated DNA SequencesGo38.9%Medium
0188Best Time to Buy and Sell Stock IV28.0%Hard
0189Rotate Array34.7%Easy
0190Reverse BitsGo39.7%Easy
0191Number of 1 BitsGo49.8%Easy
0192Word Frequency25.8%Medium
0193Valid Phone Numbers25.3%Easy
0194Transpose File24.1%Medium
0195Tenth Line33.0%Easy
0196Delete Duplicate Emails41.0%Easy
0197Rising Temperature38.4%Easy
0198House RobberGo42.0%Easy
0199Binary Tree Right Side ViewGo54.0%Medium
0200Number of IslandsGo46.8%Medium
0201Bitwise AND of Numbers RangeGo39.3%Medium
0202Happy NumberGo50.4%Easy
0203Remove Linked List ElementsGo38.6%Easy
0204Count PrimesGo31.5%Easy
0205Isomorphic StringsGo39.8%Easy
0206Reverse Linked ListGo62.5%Easy
0207Course ScheduleGo43.1%Medium
0208Implement Trie (Prefix Tree)Go49.3%Medium
0209Minimum Size Subarray SumGo38.1%Medium
0210Course Schedule IIGo40.7%Medium
0211Add and Search Word - Data structure designGo38.1%Medium
0212Word Search IIGo34.8%Hard
0213House Robber IIGo36.5%Medium
0214Shortest Palindrome29.8%Hard
0215Kth Largest Element in an ArrayGo55.3%Medium
0216Combination Sum IIIGo56.5%Medium
0217Contains DuplicateGo56.0%Easy
0218The Skyline ProblemGo34.5%Hard
0219Contains Duplicate IIGo37.7%Easy
0220Contains Duplicate IIIGo20.9%Medium
0221Maximal Square37.7%Medium
0222Count Complete Tree NodesGo46.7%Medium
0223Rectangle AreaGo37.8%Medium
0224Basic CalculatorGo36.8%Hard
0225Implement Stack using QueuesGo45.1%Easy
0226Invert Binary TreeGo64.9%Easy
0227Basic Calculator II36.9%Medium
0228Summary Ranges39.5%Medium
0229Majority Element IIGo35.6%Medium
0230Kth Smallest Element in a BSTGo60.2%Medium
0231Power of TwoGo43.7%Easy
0232Implement Queue using StacksGo49.5%Easy
0233Number of Digit One31.3%Hard
0234Palindrome Linked ListGo39.2%Easy
0235Lowest Common Ancestor of a Binary Search TreeGo49.9%Easy
0236Lowest Common Ancestor of a Binary TreeGo45.6%Medium
0237Delete Node in a Linked ListGo63.7%Easy
0238Product of Array Except Self60.1%Medium
0239Sliding Window MaximumGo43.0%Hard
0240Search a 2D Matrix IIGo43.1%Medium
0241Different Ways to Add Parentheses55.2%Medium
0242Valid AnagramGo56.8%Easy
0243Shortest Word Distance61.0%Easy
0244Shortest Word Distance II52.3%Medium
0245Shortest Word Distance III55.3%Medium
0246Strobogrammatic Number45.0%Easy
0247Strobogrammatic Number II47.6%Medium
0248Strobogrammatic Number III39.6%Hard
0249Group Shifted Strings55.0%Medium
0250Count Univalue Subtrees51.9%Medium
0251Flatten 2D Vector45.7%Medium
0252Meeting Rooms54.6%Easy
0253Meeting Rooms II45.7%Medium
0254Factor Combinations46.7%Medium
0255Verify Preorder Sequence in Binary Search Tree45.7%Medium
0256Paint House52.1%Easy
0257Binary Tree PathsGo51.4%Easy
0258Add DigitsGo57.6%Easy
02593Sum Smaller47.6%Medium
0260Single Number IIIGo64.3%Medium
0261Graph Valid Tree42.2%Medium
0262Trips and Users32.6%Hard
0263Ugly NumberGo41.6%Easy
0264Ugly Number II42.0%Medium
0265Paint House II44.6%Hard
0266Palindrome Permutation61.9%Easy
0267Palindrome Permutation II36.4%Medium
0268Missing NumberGo51.7%Easy
0269Alien Dictionary33.3%Hard
0270Closest Binary Search Tree Value48.1%Easy
0271Encode and Decode Strings31.5%Medium
0272Closest Binary Search Tree Value II50.5%Hard
0273Integer to English Words27.0%Hard
0274H-IndexGo35.9%Medium
0275H-Index IIGo35.9%Medium
0276Paint Fence38.3%Easy
0277Find the Celebrity41.8%Medium
0278First Bad Version35.7%Easy
0279Perfect Squares47.3%Medium
0280Wiggle Sort63.8%Medium
0281Zigzag Iterator58.4%Medium
0282Expression Add Operators35.5%Hard
0283Move ZeroesGo57.8%Easy
0284Peeking Iterator45.6%Medium
0285Inorder Successor in BST40.3%Medium
0286Walls and Gates54.5%Medium
0287Find the Duplicate NumberGo55.5%Medium
0288Unique Word Abbreviation21.9%Medium
0289Game of Life54.4%Medium
0290Word PatternGo37.0%Easy
0291Word Pattern II43.4%Hard
0292Nim Game54.9%Easy
0293Flip Game60.6%Easy
0294Flip Game II50.0%Medium
0295Find Median from Data Stream44.3%Hard
0296Best Meeting Point57.5%Hard
0297Serialize and Deserialize Binary Tree47.4%Hard
0298Binary Tree Longest Consecutive Sequence47.1%Medium
0299Bulls and Cows42.4%Easy
0300Longest Increasing SubsequenceGo42.6%Medium
0301Remove Invalid Parentheses43.3%Hard
0302Smallest Rectangle Enclosing Black Pixels51.6%Hard
0303Range Sum Query - ImmutableGo44.7%Easy
0304Range Sum Query 2D - Immutable38.5%Medium
0305Number of Islands II40.1%Hard
0306Additive NumberGo29.3%Medium
0307Range Sum Query - MutableGo34.6%Medium
0308Range Sum Query 2D - Mutable35.6%Hard
0309Best Time to Buy and Sell Stock with CooldownGo47.4%Medium
0310Minimum Height Trees32.3%Medium
0311Sparse Matrix Multiplication61.8%Medium
0312Burst Balloons51.7%Hard
0313Super Ugly Number45.0%Medium
0314Binary Tree Vertical Order Traversal45.2%Medium
0315Count of Smaller Numbers After SelfGo41.5%Hard
0316Remove Duplicate Letters35.8%Hard
0317Shortest Distance from All Buildings41.4%Hard
0318Maximum Product of Word LengthsGo51.2%Medium
0319Bulb Switcher45.4%Medium
0320Generalized Abbreviation52.0%Medium
0321Create Maximum Number27.0%Hard
0322Coin ChangeGo35.4%Medium
0323Number of Connected Components in an Undirected Graph56.0%Medium
0324Wiggle Sort IIGo29.9%Medium
0325Maximum Size Subarray Sum Equals k46.8%Medium
0326Power of ThreeGo42.1%Easy
0327Count of Range SumGo35.1%Hard
0328Odd Even Linked ListGo55.7%Medium
0329Longest Increasing Path in a MatrixGo43.4%Hard
0330Patching Array34.5%Hard
0331Verify Preorder Serialization of a Binary TreeGo40.4%Medium
0332Reconstruct Itinerary36.7%Medium
0333Largest BST Subtree35.8%Medium
0334Increasing Triplet Subsequence40.0%Medium
0335Self Crossing28.0%Hard
0336Palindrome Pairs33.7%Hard
0337House Robber IIIGo50.6%Medium
0338Counting BitsGo69.5%Medium
0339Nested List Weight Sum73.9%Easy
0340Longest Substring with At Most K Distinct Characters44.0%Hard
0341Flatten Nested List Iterator52.9%Medium
0342Power of FourGo41.7%Easy
0343Integer BreakGo50.4%Medium
0344Reverse StringGo68.5%Easy
0345Reverse Vowels of a StringGo44.2%Easy
0346Moving Average from Data Stream70.9%Easy
0347Top K Frequent ElementsGo61.2%Medium
0348Design Tic-Tac-Toe54.3%Medium
0349Intersection of Two ArraysGo62.5%Easy
0350Intersection of Two Arrays IIGo51.3%Easy
0351Android Unlock Patterns48.4%Medium
0352Data Stream as Disjoint Intervals47.3%Hard
0353Design Snake Game34.1%Medium
0354Russian Doll EnvelopesGo35.6%Hard
0355Design Twitter30.3%Medium
0356Line Reflection31.8%Medium
0357Count Numbers with Unique DigitsGo48.4%Medium
0358Rearrange String k Distance Apart34.9%Hard
0359Logger Rate Limiter70.8%Easy
0360Sort Transformed Array48.8%Medium
0361Bomb Enemy46.0%Medium
0362Design Hit Counter63.6%Medium
0363Max Sum of Rectangle No Larger Than K37.3%Hard
0364Nested List Weight Sum II62.7%Medium
0365Water and Jug Problem30.6%Medium
0366Find Leaves of Binary Tree70.6%Medium
0367Valid Perfect SquareGo41.7%Easy
0368Largest Divisible Subset38.1%Medium
0369Plus One Linked List58.2%Medium
0370Range Addition62.8%Medium
0371Sum of Two IntegersGo50.7%Medium
0372Super PowGo36.4%Medium
0373Find K Pairs with Smallest SumsGo36.7%Medium
0374Guess Number Higher or Lower43.0%Easy
0375Guess Number Higher or Lower II40.3%Medium
0376Wiggle Subsequence39.6%Medium
0377Combination Sum IV45.3%Medium
0378Kth Smallest Element in a Sorted MatrixGo54.3%Medium
0379Design Phone Directory46.8%Medium
0380Insert Delete GetRandom O(1)47.5%Medium
0381Insert Delete GetRandom O(1) - Duplicates allowed34.1%Hard
0382Linked List Random Node52.1%Medium
0383Ransom Note53.1%Easy
0384Shuffle an Array52.8%Medium
0385Mini ParserGo33.8%Medium
0386Lexicographical NumbersGo51.6%Medium
0387First Unique Character in a StringGo53.3%Easy
0388Longest Absolute File Path41.7%Medium
0389Find the DifferenceGo55.3%Easy
0390Elimination Game44.5%Medium
0391Perfect Rectangle30.4%Hard
0392Is SubsequenceGo49.2%Easy
0393UTF-8 ValidationGo37.5%Medium
0394Decode StringGo49.9%Medium
0395Longest Substring with At Least K Repeating Characters41.4%Medium
0396Rotate Function36.3%Medium
0397Integer ReplacementGo32.9%Medium
0398Random Pick Index55.9%Medium
0399Evaluate DivisionGo51.6%Medium
0400Nth Digit31.7%Medium
0401Binary WatchGo47.5%Easy
0402Remove K DigitsGo28.4%Medium
0403Frog Jump39.7%Hard
0404Sum of Left LeavesGo50.9%Easy
0405Convert a Number to HexadecimalGo43.9%Easy
0406Queue Reconstruction by Height66.8%Medium
0407Trapping Rain Water II42.4%Hard
0408Valid Word Abbreviation30.6%Easy
0409Longest PalindromeGo50.3%Easy
0410Split Array Largest SumGo44.5%Hard
0411Minimum Unique Word Abbreviation36.3%Hard
0412Fizz BuzzGo62.3%Easy
0413Arithmetic Slices57.9%Medium
0414Third Maximum NumberGo30.5%Easy
0415Add Strings47.5%Easy
0416Partition Equal Subset SumGo43.7%Medium
0417Pacific Atlantic Water Flow41.1%Medium
0418Sentence Screen Fitting32.6%Medium
0419Battleships in a Board70.0%Medium
0420Strong Password Checker14.1%Hard
0421Maximum XOR of Two Numbers in an ArrayGo53.5%Medium
0422Valid Word Square37.7%Easy
0423Reconstruct Original Digits from English46.9%Medium
0424Longest Repeating Character ReplacementGo47.0%Medium
0425Word Squares47.6%Hard
0426Convert Binary Search Tree to Sorted Doubly Linked List59.1%Medium
0427Construct Quad Tree61.4%Medium
0428Serialize and Deserialize N-ary Tree59.4%Hard
0429N-ary Tree Level Order Traversal65.0%Medium
0430Flatten a Multilevel Doubly Linked List55.1%Medium
0431Encode N-ary Tree to Binary Tree70.8%Hard
0432All O`one Data Structure32.4%Hard
0433Minimum Genetic MutationGo41.8%Medium
0434Number of Segments in a String37.7%Easy
0435Non-overlapping IntervalsGo42.9%Medium
0436Find Right IntervalGo45.4%Medium
0437Path Sum IIIGo46.5%Medium
0438Find All Anagrams in a StringGo43.3%Medium
0439Ternary Expression Parser55.9%Medium
0440K-th Smallest in Lexicographical Order29.1%Hard
0441Arranging CoinsGo41.8%Easy
0442Find All Duplicates in an Array67.7%Medium
0443String Compression41.3%Easy
0444Sequence Reconstruction22.2%Medium
0445Add Two Numbers IIGo54.5%Medium
0446Arithmetic Slices II - Subsequence32.7%Hard
0447Number of BoomerangsGo51.8%Easy
0448Find All Numbers Disappeared in an ArrayGo55.9%Easy
0449Serialize and Deserialize BST52.0%Medium
0450Delete Node in a BST43.1%Medium
0451Sort Characters By FrequencyGo63.0%Medium
0452Minimum Number of Arrows to Burst Balloons49.6%Medium
0453Minimum Moves to Equal Array ElementsGo50.2%Easy
04544Sum IIGo53.1%Medium
0455Assign CookiesGo49.9%Easy
0456132 PatternGo28.9%Medium
0457Circular Array LoopGo29.4%Medium
0458Poor Pigs47.4%Hard
0459Repeated Substring Pattern42.2%Easy
0460LFU Cache34.2%Hard
0461Hamming DistanceGo72.8%Easy
0462Minimum Moves to Equal Array Elements II53.8%Medium
0463Island PerimeterGo65.7%Easy
0464Can I Win28.8%Medium
0465Optimal Account Balancing46.8%Hard
0466Count The Repetitions28.2%Hard
0467Unique Substrings in Wraparound String35.6%Medium
0468Validate IP Address24.0%Medium
0469Convex Polygon37.0%Medium
0470Implement Rand10() Using Rand7()Go46.3%Medium
0471Encode String with Shortest Length47.1%Hard
0472Concatenated Words43.6%Hard
0473Matchsticks to Square37.7%Medium
0474Ones and ZeroesGo42.8%Medium
0475HeatersGo33.1%Easy
0476Number ComplementGo64.8%Easy
0477Total Hamming DistanceGo50.5%Medium
0478Generate Random Point in a Circle38.5%Medium
0479Largest Palindrome Product29.0%Hard
0480Sliding Window MedianGo37.2%Hard
0481Magical String47.5%Medium
0482License Key Formatting43.1%Easy
0483Smallest Good BaseGo35.7%Hard
0484Find Permutation60.5%Medium
0485Max Consecutive OnesGo54.7%Easy
0486Predict the Winner47.9%Medium
0487Max Consecutive Ones II48.5%Medium
0488Zuma Game39.8%Hard
0489Robot Room Cleaner69.7%Hard
0490The Maze51.4%Medium
0491Increasing SubsequencesGo46.1%Medium
0492Construct the Rectangle49.6%Easy
0493Reverse PairsGo25.2%Hard
0494Target SumGo46.3%Medium
0495Teemo Attacking53.6%Medium
0496Next Greater Element IGo63.8%Easy
0497Random Point in Non-overlapping RectanglesGo37.8%Medium
0498Diagonal TraverseGo48.2%Medium
0499The Maze III41.0%Hard
0500Keyboard RowGo64.7%Easy
0501Find Mode in Binary Search Tree42.3%Easy
0502IPO40.4%Hard
0503Next Greater Element IIGo56.5%Medium
0504Base 746.2%Easy
0505The Maze II47.7%Medium
0506Relative Ranks50.5%Easy
0507Perfect NumberGo35.5%Easy
0508Most Frequent Subtree SumGo57.9%Medium
0509Fibonacci NumberGo67.2%Easy
0510Inorder Successor in BST II58.0%Medium
0511Game Play Analysis I80.8%Easy
0512Game Play Analysis II55.5%Easy
0513Find Bottom Left Tree ValueGo61.5%Medium
0514Freedom Trail43.0%Hard
0515Find Largest Value in Each Tree RowGo61.1%Medium
0516Longest Palindromic Subsequence53.2%Medium
0517Super Washing Machines38.3%Hard
0518Coin Change 250.2%Medium
0519Random Flip Matrix36.7%Medium
0520Detect Capital54.4%Easy
0521Longest Uncommon Subsequence I57.6%Easy
0522Longest Uncommon Subsequence II34.0%Medium
0523Continuous Subarray Sum24.6%Medium
0524Longest Word in Dictionary through DeletingGo48.4%Medium
0525Contiguous Array42.8%Medium
0526Beautiful ArrangementGo57.8%Medium
0527Word Abbreviation54.2%Hard
0528Random Pick with WeightGo43.9%Medium
0529MinesweeperGo59.1%Medium
0530Minimum Absolute Difference in BST53.7%Easy
0531Lonely Pixel I59.0%Medium
0532K-diff Pairs in an ArrayGo31.5%Easy
0533Lonely Pixel II47.9%Medium
0534Game Play Analysis III75.9%Medium
0535Encode and Decode TinyURL79.9%Medium
0536Construct Binary Tree from String48.3%Medium
0537Complex Number MultiplicationGo67.4%Medium
0538Convert BST to Greater Tree55.3%Easy
0539Minimum Time Difference51.5%Medium
0540Single Element in a Sorted Array57.9%Medium
0541Reverse String IIGo48.4%Easy
054201 MatrixGo39.8%Medium
0543Diameter of Binary Tree48.4%Easy
0544Output Contest Matches75.2%Medium
0545Boundary of Binary Tree38.9%Medium
0546Remove Boxes42.7%Hard
0547Friend CirclesGo58.5%Medium
0548Split Array with Equal Sum46.4%Medium
0549Binary Tree Longest Consecutive Sequence II47.0%Medium
0550Game Play Analysis IV45.2%Medium
0551Student Attendance Record I46.0%Easy
0552Student Attendance Record II36.7%Hard
0553Optimal Division56.7%Medium
0554Brick Wall50.0%Medium
0555Split Concatenated Strings42.2%Medium
0556Next Greater Element III31.7%Medium
0557Reverse Words in a String IIIGo69.8%Easy
0558Logical OR of Two Binary Grids Represented as Quad-Trees44.6%Medium
0559Maximum Depth of N-ary Tree68.6%Easy
0560Subarray Sum Equals K43.8%Medium
0561Array Partition IGo72.0%Easy
0562Longest Line of Consecutive One in Matrix45.8%Medium
0563Binary Tree TiltGo48.7%Easy
0564Find the Closest Palindrome19.7%Hard
0565Array Nesting55.5%Medium
0566Reshape the MatrixGo60.5%Easy
0567Permutation in StringGo44.4%Medium
0568Maximum Vacation Days40.8%Hard
0569Median Employee Salary57.6%Hard
0570Managers with at Least 5 Direct Reports66.0%Medium
0571Find Median Given Frequency of Numbers44.7%Hard
0572Subtree of Another TreeGo44.1%Easy
0573Squirrel Simulation55.6%Medium
0574Winning Candidate47.5%Medium
0575Distribute CandiesGo61.4%Easy
0576Out of Boundary Paths35.1%Medium
0577Employee Bonus68.1%Easy
0578Get Highest Answer Rate Question39.3%Medium
0579Find Cumulative Salary of an Employee37.0%Hard
0580Count Student Number in Departments48.7%Medium
0581Shortest Unsorted Continuous Subarray31.1%Easy
0582Kill Process60.8%Medium
0583Delete Operation for Two Strings48.6%Medium
0584Find Customer Referee72.2%Easy
0585Investments in 201654.7%Medium
0586Customer Placing the Largest Number of Orders72.9%Easy
0587Erect the Fence35.9%Hard
0588Design In-Memory File System45.9%Hard
0589N-ary Tree Preorder Traversal72.0%Easy
0590N-ary Tree Postorder Traversal72.1%Easy
0591Tag Validator34.3%Hard
0592Fraction Addition and Subtraction49.0%Medium
0593Valid Square43.1%Medium
0594Longest Harmonious SubsequenceGo46.6%Easy
0595Big Countries77.3%Easy
0596Classes More Than 5 Students38.0%Easy
0597Friend Requests I: Overall Acceptance Rate40.9%Easy
0598Range Addition IIGo49.6%Easy
0599Minimum Index Sum of Two ListsGo50.7%Easy
0600Non-negative Integers without Consecutive Ones34.1%Hard
0601Human Traffic of Stadium41.6%Hard
0602Friend Requests II: Who Has the Most Friends53.3%Medium
0603Consecutive Available Seats63.9%Easy
0604Design Compressed String Iterator37.5%Easy
0605Can Place Flowers31.6%Easy
0606Construct String from Binary Tree54.1%Easy
0607Sales Person62.9%Easy
0608Tree Node67.0%Medium
0609Find Duplicate File in System59.5%Medium
0610Triangle Judgement65.9%Easy
0611Valid Triangle Number48.4%Medium
0612Shortest Distance in a Plane59.5%Medium
0613Shortest Distance in a Line77.5%Easy
0614Second Degree Follower30.2%Medium
0615Average Salary: Departments VS Company46.8%Hard
0616Add Bold Tag in String43.0%Medium
0617Merge Two Binary Trees74.1%Easy
0618Students Report By Geography54.8%Hard
0619Biggest Single Number43.1%Easy
0620Not Boring Movies67.5%Easy
0621Task Scheduler50.0%Medium
0622Design Circular Queue43.7%Medium
0623Add One Row to Tree49.7%Medium
0624Maximum Distance in Arrays38.9%Easy
0625Minimum Factorization32.8%Medium
0626Exchange Seats62.2%Medium
0627Swap Salary75.2%Easy
0628Maximum Product of Three NumbersGo47.1%Easy
0629K Inverse Pairs Array31.1%Hard
0630Course Schedule III33.5%Hard
0631Design Excel Sum Formula31.5%Hard
0632Smallest Range Covering Elements from K ListsGo52.4%Hard
0633Sum of Square NumbersGo32.2%Easy
0634Find the Derangement of An Array40.1%Medium
0635Design Log Storage System58.6%Medium
0636Exclusive Time of FunctionsGo52.0%Medium
0637Average of Levels in Binary TreeGo63.0%Easy
0638Shopping OffersGo51.5%Medium
0639Decode Ways II26.6%Hard
0640Solve the Equation42.0%Medium
0641Design Circular Deque52.7%Medium
0642Design Search Autocomplete System44.6%Hard
0643Maximum Average Subarray I41.5%Easy
0644Maximum Average Subarray II32.0%Hard
0645Set MismatchGo42.1%Easy
0646Maximum Length of Pair Chain51.8%Medium
0647Palindromic Substrings60.6%Medium
0648Replace WordsGo56.5%Medium
0649Dota2 Senate39.2%Medium
06502 Keys Keyboard49.2%Medium
06514 Keys Keyboard52.4%Medium
0652Find Duplicate Subtrees50.1%Medium
0653Two Sum IV - Input is a BSTGo55.5%Easy
0654Maximum Binary Tree79.9%Medium
0655Print Binary Tree55.0%Medium
0656Coin Path29.0%Hard
0657Robot Return to Origin73.5%Easy
0658Find K Closest ElementsGo40.9%Medium
0659Split Array into Consecutive Subsequences43.7%Medium
0660Remove 953.3%Hard
0661Image SmootherGo51.5%Easy
0662Maximum Width of Binary TreeGo41.1%Medium
0663Equal Tree Partition39.5%Medium
0664Strange Printer40.2%Hard
0665Non-decreasing Array19.5%Easy
0666Path Sum IV54.7%Medium
0667Beautiful Arrangement II54.2%Medium
0668Kth Smallest Number in Multiplication TableGo45.6%Hard
0669Trim a Binary Search Tree63.0%Easy
0670Maximum Swap43.6%Medium
0671Second Minimum Node In a Binary Tree42.7%Easy
0672Bulb Switcher II50.9%Medium
0673Number of Longest Increasing Subsequence35.7%Medium
0674Longest Continuous Increasing Subsequence45.9%Easy
0675Cut Off Trees for Golf Event34.6%Hard
0676Implement Magic DictionaryGo54.5%Medium
0677Map Sum Pairs53.5%Medium
0678Valid Parenthesis String31.0%Medium
067924 Game46.4%Hard
0680Valid Palindrome II36.6%Easy
0681Next Closest Time45.0%Medium
0682Baseball GameGo63.7%Easy
0683K Empty Slots35.7%Hard
0684Redundant ConnectionGo57.3%Medium
0685Redundant Connection IIGo32.4%Hard
0686Repeated String Match32.3%Easy
0687Longest Univalue Path36.2%Easy
0688Knight Probability in Chessboard48.9%Medium
0689Maximum Sum of 3 Non-Overlapping Subarrays46.3%Hard
0690Employee Importance57.3%Easy
0691Stickers to Spell Word43.0%Hard
0692Top K Frequent Words51.8%Medium
0693Binary Number with Alternating BitsGo59.4%Easy
0694Number of Distinct Islands56.0%Medium
0695Max Area of IslandGo62.7%Medium
0696Count Binary Substrings56.0%Easy
0697Degree of an ArrayGo53.8%Easy
0698Partition to K Equal Sum Subsets44.9%Medium
0699Falling SquaresGo41.8%Hard
0700Search in a Binary Search Tree73.1%Easy
0701Insert into a Binary Search Tree77.8%Medium
0702Search in a Sorted Array of Unknown Size66.7%Medium
0703Kth Largest Element in a Stream49.7%Easy
0704Binary SearchGo52.1%Easy
0705Design HashSetGo64.3%Easy
0706Design HashMapGo61.3%Easy
0707Design Linked ListGo24.5%Medium
0708Insert into a Sorted Circular Linked List31.6%Medium
0709To Lower Case79.3%Easy
0710Random Pick with BlacklistGo32.4%Hard
0711Number of Distinct Islands II47.3%Hard
0712Minimum ASCII Delete Sum for Two Strings58.5%Medium
0713Subarray Product Less Than KGo39.1%Medium
0714Best Time to Buy and Sell Stock with Transaction FeeGo54.7%Medium
0715Range ModuleGo38.5%Hard
0716Max Stack42.6%Easy
07171-bit and 2-bit CharactersGo48.8%Easy
0718Maximum Length of Repeated SubarrayGo49.3%Medium
0719Find K-th Smallest Pair DistanceGo31.5%Hard
0720Longest Word in DictionaryGo48.2%Easy
0721Accounts MergeGo48.7%Medium
0722Remove Comments34.6%Medium
0723Candy Crush69.3%Medium
0724Find Pivot Index44.0%Easy
0725Split Linked List in PartsGo52.1%Medium
0726Number of AtomsGo48.9%Hard
0727Minimum Window Subsequence41.8%Hard
0728Self Dividing Numbers74.3%Easy
0729My Calendar IGo51.8%Medium
0730Count Different Palindromic Subsequences41.7%Hard
0731My Calendar II49.1%Medium
0732My Calendar IIIGo59.9%Hard
0733Flood FillGo55.3%Easy
0734Sentence Similarity42.1%Easy
0735Asteroid CollisionGo41.1%Medium
0736Parse Lisp Expression47.5%Hard
0737Sentence Similarity II45.8%Medium
0738Monotone Increasing Digits44.3%Medium
0739Daily TemperaturesGo63.3%Medium
0740Delete and Earn48.6%Medium
0741Cherry Pickup33.9%Hard
0742Closest Leaf in a Binary Tree43.5%Medium
0743Network Delay Time44.9%Medium
0744Find Smallest Letter Greater Than TargetGo45.4%Easy
0745Prefix and Suffix SearchGo34.1%Hard
0746Min Cost Climbing StairsGo50.3%Easy
0747Largest Number At Least Twice of Others42.0%Easy
0748Shortest Completing WordGo56.7%Easy
0749Contain Virus44.5%Hard
0750Number Of Corner Rectangles66.4%Medium
0751IP to CIDR61.8%Medium
0752Open the Lock51.8%Medium
0753Cracking the SafeGo50.5%Hard
0754Reach a Number34.7%Medium
0755Pour Water43.3%Medium
0756Pyramid Transition MatrixGo54.6%Medium
0757Set Intersection Size At Least Two40.1%Hard
0758Bold Words in String45.9%Easy
0759Employee Free Time66.2%Hard
0760Find Anagram Mappings81.1%Easy
0761Special Binary String54.7%Hard
0762Prime Number of Set Bits in Binary RepresentationGo63.2%Easy
0763Partition LabelsGo76.0%Medium
0764Largest Plus Sign46.0%Medium
0765Couples Holding HandsGo54.3%Hard
0766Toeplitz MatrixGo65.0%Easy
0767Reorganize StringGo48.7%Medium
0768Max Chunks To Make Sorted II48.7%Hard
0769Max Chunks To Make Sorted54.7%Medium
0770Basic Calculator IV47.9%Hard
0771Jewels and StonesGo86.3%Easy
0772Basic Calculator III41.2%Hard
0773Sliding Puzzle59.3%Hard
0774Minimize Max Distance to Gas Station46.9%Hard
0775Global and Local Inversions42.1%Medium
0776Split BST55.8%Medium
0777Swap Adjacent in LR String34.8%Medium
0778Swim in Rising WaterGo53.0%Hard
0779K-th Symbol in Grammar37.2%Medium
0780Reaching Points29.3%Hard
0781Rabbits in ForestGo54.5%Medium
0782Transform to Chessboard42.8%Hard
0783Minimum Distance Between BST Nodes52.6%Easy
0784Letter Case PermutationGo64.6%Medium
0785Is Graph Bipartite?47.5%Medium
0786K-th Smallest Prime FractionGo41.0%Hard
0787Cheapest Flights Within K Stops39.3%Medium
0788Rotated Digits57.1%Easy
0789Escape The Ghosts57.4%Medium
0790Domino and Tromino Tiling39.2%Medium
0791Custom Sort String65.7%Medium
0792Number of Matching Subsequences47.4%Medium
0793Preimage Size of Factorial Zeroes FunctionGo40.2%Hard
0794Valid Tic-Tac-Toe State32.6%Medium
0795Number of Subarrays with Bounded Maximum46.3%Medium
0796Rotate String49.6%Easy
0797All Paths From Source to Target77.9%Medium
0798Smallest Rotation with Highest Score44.1%Hard
0799Champagne Tower35.7%Medium
0800Similar RGB Color61.4%Easy
0801Minimum Swaps To Make Sequences Increasing38.9%Medium
0802Find Eventual Safe StatesGo48.9%Medium
0803Bricks Falling When HitGo30.8%Hard
0804Unique Morse Code Words77.0%Easy
0805Split Array With Same Average26.3%Hard
0806Number of Lines To Write String64.9%Easy
0807Max Increase to Keep City Skyline83.7%Medium
0808Soup Servings39.9%Medium
0809Expressive Words47.0%Medium
0810Chalkboard XOR Game48.2%Hard
0811Subdomain Visit CountGo69.8%Easy
0812Largest Triangle AreaGo58.3%Easy
0813Largest Sum of Averages49.9%Medium
0814Binary Tree Pruning74.5%Medium
0815Bus RoutesGo42.6%Hard
0816Ambiguous Coordinates47.2%Medium
0817Linked List ComponentsGo57.3%Medium
0818Race Car39.0%Hard
0819Most Common WordGo44.8%Easy
0820Short Encoding of Words50.7%Medium
0821Shortest Distance to a Character66.9%Easy
0822Card Flipping Game42.9%Medium
0823Binary Trees With Factors35.8%Medium
0824Goat Latin63.3%Easy
0825Friends Of Appropriate Ages42.6%Medium
0826Most Profit Assigning WorkGo38.5%Medium
0827Making A Large Island45.6%Hard
0828Count Unique Characters of All Substrings of a Given StringGo45.1%Hard
0829Consecutive Numbers Sum37.4%Hard
0830Positions of Large Groups49.6%Easy
0831Masking Personal Information44.1%Medium
0832Flipping an ImageGo76.2%Easy
0833Find And Replace in String50.4%Medium
0834Sum of Distances in TreeGo43.7%Hard
0835Image Overlap58.5%Medium
0836Rectangle OverlapGo48.6%Easy
0837New 21 Game34.6%Medium
0838Push DominoesGo48.4%Medium
0839Similar String GroupsGo38.6%Hard
0840Magic Squares In Grid37.3%Easy
0841Keys and RoomsGo64.3%Medium
0842Split Array into Fibonacci SequenceGo36.3%Medium
0843Guess the Word46.1%Hard
0844Backspace String CompareGo46.4%Easy
0845Longest Mountain in ArrayGo37.2%Medium
0846Hand of Straights54.2%Medium
0847Shortest Path Visiting All Nodes52.0%Hard
0848Shifting Letters44.6%Medium
0849Maximize Distance to Closest Person42.6%Easy
0850Rectangle Area IIGo47.5%Hard
0851Loud and RichGo51.6%Medium
0852Peak Index in a Mountain ArrayGo71.6%Easy
0853Car FleetGo42.4%Medium
0854K-Similar Strings38.2%Hard
0855Exam Room43.1%Medium
0856Score of ParenthesesGo60.5%Medium
0857Minimum Cost to Hire K Workers49.6%Hard
0858Mirror Reflection53.7%Medium
0859Buddy Strings27.4%Easy
0860Lemonade Change51.6%Easy
0861Score After Flipping Matrix72.8%Medium
0862Shortest Subarray with Sum at Least KGo24.6%Hard
0863All Nodes Distance K in Binary TreeGo55.3%Medium
0864Shortest Path to Get All KeysGo40.1%Hard
0865Smallest Subtree with all the Deepest Nodes60.8%Medium
0866Prime Palindrome24.9%Medium
0867Transpose MatrixGo62.8%Easy
0868Binary Gap60.6%Easy
0869Reordered Power of 253.3%Medium
0870Advantage Shuffle45.6%Medium
0871Minimum Number of Refueling Stops31.4%Hard
0872Leaf-Similar TreesGo64.5%Easy
0873Length of Longest Fibonacci Subsequence48.0%Medium
0874Walking Robot Simulation35.3%Easy
0875Koko Eating BananasGo52.1%Medium
0876Middle of the Linked ListGo68.4%Easy
0877Stone Game64.8%Medium
0878Nth Magical NumberGo28.4%Hard
0879Profitable Schemes39.7%Hard
0880Decoded String at IndexGo24.3%Medium
0881Boats to Save PeopleGo46.8%Medium
0882Reachable Nodes In Subdivided Graph41.3%Hard
0883Projection Area of 3D Shapes67.7%Easy
0884Uncommon Words from Two SentencesGo63.3%Easy
0885Spiral Matrix IIIGo69.3%Medium
0886Possible Bipartition44.1%Medium
0887Super Egg DropGo27.0%Hard
0888Fair Candy SwapGo58.3%Easy
0889Construct Binary Tree from Preorder and Postorder Traversal66.1%Medium
0890Find and Replace Pattern73.4%Medium
0891Sum of Subsequence WidthsGo31.9%Hard
0892Surface Area of 3D ShapesGo58.9%Easy
0893Groups of Special-Equivalent Strings66.5%Easy
0894All Possible Full Binary Trees75.2%Medium
0895Maximum Frequency StackGo60.6%Hard
0896Monotonic ArrayGo57.9%Easy
0897Increasing Order Search TreeGo70.7%Easy
0898Bitwise ORs of SubarraysGo34.8%Medium
0899Orderly Queue52.2%Hard
0900RLE Iterator53.5%Medium
0901Online Stock SpanGo60.1%Medium
0902Numbers At Most N Given Digit Set31.5%Hard
0903Valid Permutations for DI Sequence49.6%Hard
0904Fruit Into BasketsGo42.5%Medium
0905Sort Array By Parity74.0%Easy
0906Super Palindromes32.7%Hard
0907Sum of Subarray MinimumsGo32.3%Medium
0908Smallest Range I65.8%Easy
0909Snakes and Ladders38.4%Medium
0910Smallest Range II26.6%Medium
0911Online ElectionGo50.4%Medium
0912Sort an Array63.8%Medium
0913Cat and Mouse31.3%Hard
0914X of a Kind in a Deck of CardsGo34.9%Easy
0915Partition Array into Disjoint Intervals45.3%Medium
0916Word Subsets47.8%Medium
0917Reverse Only Letters57.9%Easy
0918Maximum Sum Circular SubarrayGo33.6%Medium
0919Complete Binary Tree Inserter57.3%Medium
0920Number of Music PlaylistsGo46.5%Hard
0921Minimum Add to Make Parentheses ValidGo73.6%Medium
0922Sort Array By Parity IIGo69.2%Easy
09233Sum With MultiplicityGo35.7%Medium
0924Minimize Malware SpreadGo42.0%Hard
0925Long Pressed NameGo40.6%Easy
0926Flip String to Monotone Increasing52.3%Medium
0927Three Equal PartsGo33.6%Hard
0928Minimize Malware Spread IIGo40.5%Hard
0929Unique Email Addresses67.4%Easy
0930Binary Subarrays With SumGo43.0%Medium
0931Minimum Falling Path Sum62.4%Medium
0932Beautiful Array58.3%Medium
0933Number of Recent CallsGo71.9%Easy
0934Shortest Bridge48.1%Medium
0935Knight Dialer45.1%Medium
0936Stamping The Sequence42.8%Hard
0937Reorder Data in Log Files54.4%Easy
0938Range Sum of BST81.3%Easy
0939Minimum Area Rectangle51.8%Medium
0940Distinct Subsequences II41.4%Hard
0941Valid Mountain Array33.3%Easy
0942DI String MatchGo72.6%Easy
0943Find the Shortest Superstring42.8%Hard
0944Delete Columns to Make Sorted70.3%Easy
0945Minimum Increment to Make Array Unique46.3%Medium
0946Validate Stack SequencesGo61.8%Medium
0947Most Stones Removed with Same Row or ColumnGo55.3%Medium
0948Bag of Tokens40.8%Medium
0949Largest Time for Given DigitsGo35.9%Easy
0950Reveal Cards In Increasing Order74.6%Medium
0951Flip Equivalent Binary Trees65.7%Medium
0952Largest Component Size by Common FactorGo30.3%Hard
0953Verifying an Alien DictionaryGo54.1%Easy
0954Array of Doubled Pairs35.6%Medium
0955Delete Columns to Make Sorted II33.2%Medium
0956Tallest Billboard39.7%Hard
0957Prison Cells After N Days40.7%Medium
0958Check Completeness of a Binary Tree52.0%Medium
0959Regions Cut By SlashesGo66.1%Medium
0960Delete Columns to Make Sorted III53.6%Hard
0961N-Repeated Element in Size 2N ArrayGo73.7%Easy
0962Maximum Width Ramp45.3%Medium
0963Minimum Area Rectangle II50.8%Medium
0964Least Operators to Express Number43.7%Hard
0965Univalued Binary Tree67.7%Easy
0966Vowel Spellchecker47.2%Medium
0967Numbers With Same Consecutive Differences39.4%Medium
0968Binary Tree CamerasGo37.5%Hard
0969Pancake SortingGo67.5%Medium
0970Powerful IntegersGo39.8%Easy
0971Flip Binary Tree To Match Preorder Traversal45.6%Medium
0972Equal Rational Numbers41.6%Hard
0973K Closest Points to OriginGo63.8%Medium
0974Subarray Sums Divisible by K48.9%Medium
0975Odd Even Jump42.3%Hard
0976Largest Perimeter TriangleGo57.6%Easy
0977Squares of a Sorted ArrayGo72.2%Easy
0978Longest Turbulent SubarrayGo46.6%Medium
0979Distribute Coins in Binary TreeGo68.8%Medium
0980Unique Paths IIIGo73.3%Hard
0981Time Based Key-Value StoreGo53.1%Medium
0982Triples with Bitwise AND Equal To Zero55.5%Hard
0983Minimum Cost For Tickets60.5%Medium
0984String Without AAA or BBBGo37.7%Medium
0985Sum of Even Numbers After QueriesGo61.3%Easy
0986Interval List IntersectionsGo67.3%Medium
0987Vertical Order Traversal of a Binary Tree36.6%Medium
0988Smallest String Starting From Leaf46.0%Medium
0989Add to Array-Form of Integer44.2%Easy
0990Satisfiability of Equality EquationsGo44.9%Medium
0991Broken Calculator45.5%Medium
0992Subarrays with K Different IntegersGo48.6%Hard
0993Cousins in Binary TreeGo52.0%Easy
0994Rotting Oranges47.8%Medium
0995Minimum Number of K Consecutive Bit FlipsGo46.8%Hard
0996Number of Squareful ArraysGo47.9%Hard
0997Find the Town Judge50.1%Easy
0998Maximum Binary Tree II62.9%Medium
0999Available Captures for RookGo66.7%Easy
1000Minimum Cost to Merge Stones39.6%Hard
1001Grid Illumination35.9%Hard
1002Find Common CharactersGo67.7%Easy
1003Check If Word Is Valid After SubstitutionsGo55.3%Medium
1004Max Consecutive Ones IIIGo59.1%Medium
1005Maximize Sum Of Array After K NegationsGo51.3%Easy
1006Clumsy Factorial53.3%Medium
1007Minimum Domino Rotations For Equal Row50.0%Medium
1008Construct Binary Search Tree from Preorder Traversal78.4%Medium
1009Complement of Base 10 Integer59.6%Easy
1010Pairs of Songs With Total Durations Divisible by 6047.4%Easy
1011Capacity To Ship Packages Within D DaysGo58.1%Medium
1012Numbers With Repeated Digits37.5%Hard
1013Partition Array Into Three Parts With Equal Sum51.8%Easy
1014Best Sightseeing Pair52.5%Medium
1015Smallest Integer Divisible by K32.1%Medium
1016Binary String With Substrings Representing 1 To N58.9%Medium
1017Convert to Base -2Go59.0%Medium
1018Binary Prefix Divisible By 547.7%Easy
1019Next Greater Node In Linked ListGo57.4%Medium
1020Number of EnclavesGo57.7%Medium
1021Remove Outermost ParenthesesGo77.9%Easy
1022Sum of Root To Leaf Binary Numbers67.2%Easy
1023Camelcase Matching57.0%Medium
1024Video Stitching49.2%Medium
1025Divisor GameGo66.3%Easy
1026Maximum Difference Between Node and AncestorGo65.9%Medium
1027Longest Arithmetic Sequence53.5%Medium
1028Recover a Tree From Preorder TraversalGo69.9%Hard
1029Two City Scheduling56.1%Easy
1030Matrix Cells in Distance OrderGo65.7%Easy
1031Maximum Sum of Two Non-Overlapping Subarrays57.8%Medium
1032Stream of Characters48.3%Hard
1033Moving Stones Until Consecutive41.7%Easy
1034Coloring A Border44.7%Medium
1035Uncrossed Lines56.1%Medium
1036Escape a Large Maze35.4%Hard
1037Valid BoomerangGo37.9%Easy
1038Binary Search Tree to Greater Sum Tree80.8%Medium
1039Minimum Score Triangulation of Polygon49.1%Medium
1040Moving Stones Until Consecutive IIGo52.9%Medium
1041Robot Bounded In Circle49.5%Medium
1042Flower Planting With No Adjacent48.5%Easy
1043Partition Array for Maximum Sum65.1%Medium
1044Longest Duplicate Substring32.0%Hard
1045Customers Who Bought All Products67.8%Medium
1046Last Stone Weight62.2%Easy
1047Remove All Adjacent Duplicates In StringGo68.5%Easy
1048Longest String Chain54.7%Medium
1049Last Stone Weight IIGo44.1%Medium
1050Actors and Directors Who Cooperated At Least Three Times71.7%Easy
1051Height CheckerGo71.1%Easy
1052Grumpy Bookstore OwnerGo55.4%Medium
1053Previous Permutation With One Swap48.5%Medium
1054Distant BarcodesGo43.2%Medium
1055Shortest Way to Form String56.9%Medium
1056Confusing Number48.7%Easy
1057Campus Bikes57.7%Medium
1058Minimize Rounding Error to Meet Target41.7%Medium
1059All Paths from Source Lead to Destination44.7%Medium
1060Missing Element in Sorted Array54.5%Medium
1061Lexicographically Smallest Equivalent String65.2%Medium
1062Longest Repeating Substring57.2%Medium
1063Number of Valid Subarrays71.1%Hard
1064Fixed Point66.5%Easy
1065Index Pairs of a String60.6%Easy
1066Campus Bikes II54.2%Medium
1067Digit Count in Range40.0%Hard
1068Product Sales Analysis I83.1%Easy
1069Product Sales Analysis II82.9%Easy
1070Product Sales Analysis III48.9%Medium
1071Greatest Common Divisor of Strings53.0%Easy
1072Flip Columns For Maximum Number of Equal Rows60.8%Medium
1073Adding Two Negabinary NumbersGo34.0%Medium
1074Number of Submatrices That Sum to TargetGo59.3%Hard
1075Project Employees I64.9%Easy
1076Project Employees II53.7%Easy
1077Project Employees III75.4%Medium
1078Occurrences After BigramGo64.7%Easy
1079Letter Tile PossibilitiesGo75.4%Medium
1080Insufficient Nodes in Root to Leaf Paths49.3%Medium
1081Smallest Subsequence of Distinct Characters50.4%Medium
1082Sales Analysis I71.7%Easy
1083Sales Analysis II50.6%Easy
1084Sales Analysis III54.2%Easy
1085Sum of Digits in the Minimum Number74.6%Easy
1086High Five79.6%Easy
1087Brace Expansion62.7%Medium
1088Confusing Number II43.9%Hard
1089Duplicate ZerosGo53.0%Easy
1090Largest Values From Labels58.9%Medium
1091Shortest Path in Binary Matrix38.2%Medium
1092Shortest Common Supersequence51.6%Hard
1093Statistics from a Large SampleGo48.2%Medium
1094Car Pooling56.7%Medium
1095Find in Mountain Array35.7%Hard
1096Brace Expansion II62.1%Hard
1097Game Play Analysis V54.4%Hard
1098Unpopular Books44.4%Medium
1099Two Sum Less Than K60.6%Easy
1100Find K-Length Substrings With No Repeated Characters72.7%Medium
1101The Earliest Moment When Everyone Become Friends66.2%Medium
1102Path With Maximum Minimum Value49.2%Medium
1103Distribute Candies to People60.5%Easy
1104Path In Zigzag Labelled Binary Tree72.0%Medium
1105Filling Bookcase ShelvesGo58.1%Medium
1106Parsing A Boolean Expression58.5%Hard
1107New Users Daily Count45.1%Medium
1108Defanging an IP AddressGo87.5%Easy
1109Corporate Flight Bookings52.8%Medium
1110Delete Nodes And Return ForestGo67.0%Medium
1111Maximum Nesting Depth of Two Valid Parentheses StringsGo70.4%Medium
1112Highest Grade For Each Student69.4%Medium
1113Reported Posts64.1%Easy
1114Print in Order65.7%Easy
1115Print FooBar Alternately58.5%Medium
1116Print Zero Even Odd56.0%Medium
1117Building H2O52.6%Medium
1118Number of Days in a Month57.4%Easy
1119Remove Vowels from a String89.9%Easy
1120Maximum Average Subtree62.0%Medium
1121Divide Array Into Increasing Sequences56.8%Hard
1122Relative Sort ArrayGo67.7%Easy
1123Lowest Common Ancestor of Deepest LeavesGo66.8%Medium
1124Longest Well-Performing Interval32.7%Medium
1125Smallest Sufficient Team46.5%Hard
1126Active Businesses68.5%Medium
1127User Purchase Platform48.9%Hard
1128Number of Equivalent Domino PairsGo47.3%Easy
1129Shortest Path with Alternating Colors38.9%Medium
1130Minimum Cost Tree From Leaf Values66.1%Medium
1131Maximum of Absolute Value Expression53.1%Medium
1132Reported Posts II34.4%Medium
1133Largest Unique Number66.9%Easy
1134Armstrong Number78.3%Easy
1135Connecting Cities With Minimum Cost57.5%Medium
1136Parallel Courses61.1%Hard
1137N-th Tribonacci NumberGo55.9%Easy
1138Alphabet Board Path48.4%Medium
1139Largest 1-Bordered Square47.5%Medium
1140Stone Game II63.3%Medium
1141User Activity for the Past 30 Days I54.1%Easy
1142User Activity for the Past 30 Days II34.5%Easy
1143Longest Common Subsequence58.4%Medium
1144Decrease Elements To Make Array Zigzag45.4%Medium
1145Binary Tree Coloring GameGo51.3%Medium
1146Snapshot Array37.1%Medium
1147Longest Chunked Palindrome Decomposition58.6%Hard
1148Article Views I75.8%Easy
1149Article Views II48.1%Medium
1150Check If a Number Is Majority Element in a Sorted Array59.2%Easy
1151Minimum Swaps to Group All 1's Together59.3%Medium
1152Analyze User Website Visit Pattern43.5%Medium
1153String Transforms Into Another String35.8%Hard
1154Day of the YearGo49.3%Easy
1155Number of Dice Rolls With Target Sum49.1%Medium
1156Swap For Longest Repeated Character Substring48.9%Medium
1157Online Majority Element In SubarrayGo38.9%Hard
1158Market Analysis I61.7%Medium
1159Market Analysis II52.9%Hard
1160Find Words That Can Be Formed by CharactersGo67.4%Easy
1161Maximum Level Sum of a Binary Tree72.2%Medium
1162As Far from Land as Possible43.4%Medium
1163Last Substring in Lexicographical Order33.8%Hard
1164Product Price at a Given Date65.8%Medium
1165Single-Row Keyboard84.8%Easy
1166Design File System56.8%Medium
1167Minimum Cost to Connect Sticks62.7%Medium
1168Optimize Water Distribution in a Village60.9%Hard
1169Invalid Transactions31.2%Medium
1170Compare Strings by Frequency of the Smallest CharacterGo58.6%Easy
1171Remove Zero Sum Consecutive Nodes from Linked ListGo41.4%Medium
1172Dinner Plate Stacks38.2%Hard
1173Immediate Food Delivery I80.4%Easy
1174Immediate Food Delivery II58.4%Medium
1175Prime ArrangementsGo51.0%Easy
1176Diet Plan Performance53.9%Easy
1177Can Make Palindrome from Substring34.6%Medium
1178Number of Valid Words for Each Puzzle37.9%Hard
1179Reformat Department Table80.5%Easy
1180Count Substrings with Only One Distinct Letter77.0%Easy
1181Before and After Puzzle44.4%Medium
1182Shortest Distance to Target Color52.8%Medium
1183Maximum Number of Ones54.4%Hard
1184Distance Between Bus StopsGo54.4%Easy
1185Day of the WeekGo64.0%Easy
1186Maximum Subarray Sum with One Deletion37.4%Medium
1187Make Array Strictly Increasing41.8%Hard
1188Design Bounded Blocking Queue70.5%Medium
1189Maximum Number of BalloonsGo61.2%Easy
1190Reverse Substrings Between Each Pair of Parentheses61.5%Medium
1191K-Concatenation Maximum Sum25.9%Medium
1192Critical Connections in a Network48.6%Hard
1193Monthly Transactions I68.2%Medium
1194Tournament Winners52.8%Hard
1195Fizz Buzz Multithreaded68.3%Medium
1196How Many Apples Can You Put into the Basket68.1%Easy
1197Minimum Knight Moves36.1%Medium
1198Find Smallest Common Element in All Rows74.9%Medium
1199Minimum Time to Build Blocks37.3%Hard
1200Minimum Absolute DifferenceGo66.6%Easy
1201Ugly Number IIIGo25.9%Medium
1202Smallest String With SwapsGo46.5%Medium
1203Sort Items by Groups Respecting Dependencies47.6%Hard
1204Last Person to Fit in the Elevator69.7%Medium
1205Monthly Transactions II45.1%Medium
1206Design Skiplist57.4%Hard
1207Unique Number of OccurrencesGo71.6%Easy
1208Get Equal Substrings Within BudgetGo41.9%Medium
1209Remove All Adjacent Duplicates in String II56.8%Medium
1210Minimum Moves to Reach Target with Rotations45.2%Hard
1211Queries Quality and Percentage68.3%Easy
1212Team Scores in Football Tournament55.7%Medium
1213Intersection of Three Sorted Arrays78.9%Easy
1214Two Sum BSTs67.6%Medium
1215Stepping Numbers41.6%Medium
1216Valid Palindrome III47.7%Hard
1217Play with ChipsGo64.3%Easy
1218Longest Arithmetic Subsequence of Given Difference44.5%Medium
1219Path with Maximum Gold65.1%Medium
1220Count Vowels Permutation53.9%Hard
1221Split a String in Balanced StringsGo83.2%Easy
1222Queens That Can Attack the King68.7%Medium
1223Dice Roll Simulation45.6%Medium
1224Maximum Equal Frequency33.5%Hard
1225Report Contiguous Dates61.2%Hard
1226The Dining Philosophers55.7%Medium
1227Airplane Seat Assignment Probability61.0%Medium
1228Missing Number In Arithmetic Progression52.6%Easy
1229Meeting Scheduler52.6%Medium
1230Toss Strange Coins48.7%Medium
1231Divide Chocolate52.3%Hard
1232Check If It Is a Straight LineGo45.3%Easy
1233Remove Sub-Folders from the Filesystem59.5%Medium
1234Replace the Substring for Balanced StringGo33.3%Medium
1235Maximum Profit in Job SchedulingGo44.1%Hard
1236Web Crawler64.3%Medium
1237Find Positive Integer Solution for a Given Equation69.6%Easy
1238Circular Permutation in Binary Representation64.9%Medium
1239Maximum Length of a Concatenated String with Unique Characters47.8%Medium
1240Tiling a Rectangle with the Fewest Squares50.1%Hard
1241Number of Comments per Post67.0%Easy
1242Web Crawler Multithreaded45.9%Medium
1243Array Transformation51.0%Easy
1244Design A Leaderboard60.7%Medium
1245Tree Diameter60.0%Medium
1246Palindrome Removal46.0%Hard
1247Minimum Swaps to Make Strings Equal60.0%Medium
1248Count Number of Nice Subarrays56.4%Medium
1249Minimum Remove to Make Valid Parentheses62.5%Medium
1250Check If It Is a Good Array55.7%Hard
1251Average Selling Price81.4%Easy
1252Cells with Odd Values in a MatrixGo78.1%Easy
1253Reconstruct a 2-Row Binary Matrix40.4%Medium
1254Number of Closed IslandsGo60.3%Medium
1255Maximum Score Words Formed by Letters69.3%Hard
1256Encode Number66.0%Medium
1257Smallest Common Region58.8%Medium
1258Synonymous Sentences64.4%Medium
1259Handshakes That Don't Cross53.5%Hard
1260Shift 2D GridGo61.3%Easy
1261Find Elements in a Contaminated Binary Tree74.3%Medium
1262Greatest Sum Divisible by Three47.6%Medium
1263Minimum Moves to Move a Box to Their Target Location41.4%Hard
1264Page Recommendations67.5%Medium
1265Print Immutable Linked List in Reverse94.6%Medium
1266Minimum Time Visiting All PointsGo79.6%Easy
1267Count Servers that Communicate57.9%Medium
1268Search Suggestions System63.3%Medium
1269Number of Ways to Stay in the Same Place After Some Steps43.2%Hard
1270All People Report to the Given Manager87.0%Medium
1271Hexspeak54.2%Easy
1272Remove Interval58.6%Medium
1273Delete Tree Nodes63.5%Medium
1274Number of Ships in a Rectangle66.5%Hard
1275Find Winner on a Tic Tac Toe GameGo52.9%Easy
1276Number of Burgers with No Waste of Ingredients49.6%Medium
1277Count Square Submatrices with All Ones73.2%Medium
1278Palindrome Partitioning III59.9%Hard
1279Traffic Light Controlled Intersection74.3%Easy
1280Students and Examinations72.1%Easy
1281Subtract the Product and Sum of Digits of an IntegerGo85.2%Easy
1282Group the People Given the Group Size They Belong To83.9%Medium
1283Find the Smallest Divisor Given a ThresholdGo47.6%Medium
1284Minimum Number of Flips to Convert Binary Matrix to Zero Matrix69.5%Hard
1285Find the Start and End Number of Continuous Ranges83.7%Medium
1286Iterator for Combination68.1%Medium
1287Element Appearing More Than 25% In Sorted ArrayGo60.2%Easy
1288Remove Covered Intervals58.0%Medium
1289Minimum Falling Path Sum II61.0%Hard
1290Convert Binary Number in a Linked List to IntegerGo80.2%Easy
1291Sequential Digits53.4%Medium
1292Maximum Side Length of a Square with Sum Less than or Equal to Threshold48.5%Medium
1293Shortest Path in a Grid with Obstacles Elimination42.7%Hard
1294Weather Type in Each Country63.1%Easy
1295Find Numbers with Even Number of DigitsGo81.6%Easy
1296Divide Array in Sets of K Consecutive Numbers53.7%Medium
1297Maximum Number of Occurrences of a Substring47.3%Medium
1298Maximum Candies You Can Get from Boxes58.9%Hard
1299Replace Elements with Greatest Element on Right SideGo75.4%Easy
1300Sum of Mutated Array Closest to TargetGo44.2%Medium
1301Number of Paths with Max Score37.2%Hard
1302Deepest Leaves SumGo83.6%Medium
1303Find the Team Size87.8%Easy
1304Find N Unique Integers Sum up to ZeroGo76.3%Easy
1305All Elements in Two Binary Search TreesGo76.1%Medium
1306Jump Game IIIGo60.5%Medium
1307Verbal Arithmetic Puzzle37.6%Hard
1308Running Total for Different Genders84.0%Medium
1309Decrypt String from Alphabet to Integer Mapping76.7%Easy
1310XOR Queries of a Subarray68.6%Medium
1311Get Watched Videos by Your Friends43.1%Medium
1312Minimum Insertion Steps to Make a String Palindrome58.1%Hard
1313Decompress Run-Length Encoded ListGo85.1%Easy
1314Matrix Block Sum73.7%Medium
1315Sum of Nodes with Even-Valued Grandparent83.5%Medium
1316Distinct Echo Substrings46.4%Hard
1317Convert Integer to the Sum of Two No-Zero IntegersGo56.7%Easy
1318Minimum Flips to Make a OR b Equal to c62.8%Medium
1319Number of Operations to Make Network Connected53.1%Medium
1320Minimum Distance to Type a Word Using Two Fingers62.3%Hard
1321Restaurant Growth67.7%Medium
1322Ads Performance57.8%Easy
1323Maximum 69 Number77.9%Easy
1324Print Words Vertically58.0%Medium
1325Delete Leaves With a Given Value72.9%Medium
1326Minimum Number of Taps to Open to Water a Garden43.5%Hard
1327List the Products Ordered in a Period76.3%Easy
1328Break a Palindrome43.3%Medium
1329Sort the Matrix Diagonally78.4%Medium
1330Reverse Subarray To Maximize Array Value35.1%Hard
1331Rank Transform of an Array58.1%Easy
1332Remove Palindromic Subsequences60.0%Easy
1333Filter Restaurants by Vegan-Friendly, Price and Distance54.6%Medium
1334Find the City With the Smallest Number of Neighbors at a Threshold Distance44.5%Medium
1335Minimum Difficulty of a Job Schedule57.5%Hard
1336Number of Transactions per Visit43.5%Hard
1337The K Weakest Rows in a Matrix68.7%Easy
1338Reduce Array Size to The Half66.6%Medium
1339Maximum Product of Splitted Binary Tree37.2%Medium
1340Jump Game V57.5%Hard
1341Movie Rating56.6%Medium
1342Number of Steps to Reduce a Number to Zero86.3%Easy
1343Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold64.2%Medium
1344Angle Between Hands of a Clock61.4%Medium
1345Jump Game IV38.1%Hard
1346Check If N and Its Double Exist38.0%Easy
1347Minimum Number of Steps to Make Two Strings Anagram74.6%Medium
1348Tweet Counts Per Frequency29.0%Medium
1349Maximum Students Taking Exam41.9%Hard
1350Students With Invalid Departments89.4%Easy
1351Count Negative Numbers in a Sorted Matrix76.6%Easy
1352Product of the Last K Numbers43.6%Medium
1353Maximum Number of Events That Can Be Attended30.5%Medium
1354Construct Target Array With Multiple Sums31.9%Hard
1355Activity Participants69.2%Medium
1356Sort Integers by The Number of 1 Bits68.6%Easy
1357Apply Discount Every n Orders66.0%Medium
1358Number of Substrings Containing All Three Characters58.0%Medium
1359Count All Valid Pickup and Delivery Options57.9%Hard
1360Number of Days Between Two Dates48.8%Easy
1361Validate Binary Tree Nodes48.6%Medium
1362Closest Divisors56.7%Medium
1363Largest Multiple of Three33.5%Hard
1364Number of Trusted Contacts of a Customer75.3%Medium
1365How Many Numbers Are Smaller Than the Current Number85.6%Easy
1366Rank Teams by Votes52.4%Medium
1367Linked List in Binary Tree39.7%Medium
1368Minimum Cost to Make at Least One Valid Path in a Grid54.4%Hard
1369Get the Second Most Recent Activity64.7%Hard
1370Increasing Decreasing String75.6%Easy
1371Find the Longest Substring Containing Vowels in Even Counts57.3%Medium
1372Longest ZigZag Path in a Binary Tree54.0%Medium
1373Maximum Sum BST in Binary Tree40.2%Hard
1374Generate a String With Characters That Have Odd Counts75.4%Easy
1375Bulb Switcher III62.5%Medium
1376Time Needed to Inform All Employees55.5%Medium
1377Frog Position After T Seconds33.6%Hard
1378Replace Employee ID With The Unique Identifier87.4%Easy
1379Find a Corresponding Node of a Binary Tree in a Clone of That Tree83.8%Medium
1380Lucky Numbers in a MatrixGo71.4%Easy
1381Design a Stack With Increment Operation74.7%Medium
1382Balance a Binary Search Tree74.8%Medium
1383Maximum Performance of a Team31.8%Hard
1384Total Sales Amount by Year62.8%Hard
1385Find the Distance Value Between Two ArraysGo67.1%Easy
1386Cinema Seat Allocation34.8%Medium
1387Sort Integers by The Power Value70.1%Medium
1388Pizza With 3n Slices44.7%Hard
1389Create Target Array in the Given OrderGo84.1%Easy
1390Four Divisors38.1%Medium
1391Check if There is a Valid Path in a Grid44.5%Medium
1392Longest Happy Prefix40.0%Hard
1393Capital Gain/Loss89.2%Medium
1394Find Lucky Integer in an Array64.5%Easy
1395Count Number of Teams81.9%Medium
1396Design Underground System64.7%Medium
1397Find All Good Strings37.2%Hard
1398Customers Who Bought Products A and B but Not C80.6%Medium
1399Count Largest Group65.0%Easy
1400Construct K Palindrome Strings60.4%Medium
1401Circle and Rectangle Overlapping41.8%Medium
1402Reducing Dishes72.8%Hard
1403Minimum Subsequence in Non-Increasing Order70.8%Easy
1404Number of Steps to Reduce a Number in Binary Representation to One50.3%Medium
1405Longest Happy String49.0%Medium
1406Stone Game III56.0%Hard
1407Top Travellers82.1%Easy
1408String Matching in an Array61.4%Easy
1409Queries on a Permutation With Key81.6%Medium
1410HTML Entity Parser53.9%Medium
1411Number of Ways to Paint N × 3 Grid61.2%Hard
1412Find the Quiet Students in All Exams66.6%Hard
1413Minimum Value to Get Positive Step by Step Sum65.2%Easy
1414Find the Minimum Number of Fibonacci Numbers Whose Sum Is K62.4%Medium
1415The k-th Lexicographical String of All Happy Strings of Length n70.4%Medium
1416Restore The Array36.7%Hard
1417Reformat The String55.0%Easy
1418Display Table of Food Orders in a Restaurant65.6%Medium
1419Minimum Number of Frogs Croaking46.3%Medium
1420Build Array Where You Can Find The Maximum Exactly K Comparisons65.2%Hard
1421NPV Queries80.5%Medium
1422Maximum Score After Splitting a String54.7%Easy
1423Maximum Points You Can Obtain from Cards42.5%Medium
1424Diagonal Traverse II42.3%Medium
1425Constrained Subsequence Sum44.1%Hard
1426Counting Elements58.7%Easy
1427Perform String Shifts53.0%Easy
1428Leftmost Column with at Least a One46.8%Medium
1429First Unique Number47.0%Medium
1430Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary Tree44.8%Medium
1431Kids With the Greatest Number of Candies88.9%Easy
1432Max Difference You Can Get From Changing an Integer42.8%Medium
1433Check If a String Can Break Another String65.7%Medium
1434Number of Ways to Wear Different Hats to Each Other38.0%Hard
1435Create a Session Bar Chart76.7%Easy
1436Destination City77.3%Easy
1437Check If All 1's Are at Least Length K Places Away63.3%Medium
1438Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit41.9%Medium
1439Find the Kth Smallest Sum of a Matrix With Sorted Rows59.4%Hard
1440Evaluate Boolean Expression70.1%Medium
1441Build an Array With Stack Operations68.8%Easy
1442Count Triplets That Can Form Two Arrays of Equal XOR69.4%Medium
1443Minimum Time to Collect All Apples in a Tree55.5%Medium
1444Number of Ways of Cutting a Pizza52.7%Hard
1445Apples & Oranges87.2%Medium
1446Consecutive Characters60.4%Easy
1447Simplified Fractions61.0%Medium
1448Count Good Nodes in Binary Tree70.6%Medium
1449Form Largest Integer With Digits That Add up to Target41.8%Hard
1450Number of Students Doing Homework at a Given Time78.1%Easy
1451Rearrange Words in a Sentence54.8%Medium
1452People Whose List of Favorite Companies Is Not a Subset of Another List53.3%Medium
1453Maximum Number of Darts Inside of a Circular Dartboard33.7%Hard
1454Active Users37.5%Medium
1455Check If a Word Occurs As a Prefix of Any Word in a SentenceGo64.7%Easy
1456Maximum Number of Vowels in a Substring of Given Length52.4%Medium
1457Pseudo-Palindromic Paths in a Binary Tree67.2%Medium
1458Max Dot Product of Two Subsequences41.7%Hard
1459Rectangles Area61.5%Medium
1460Make Two Arrays Equal by Reversing Sub-arrays74.0%Easy
1461Check If a String Contains All Binary Codes of Size K44.6%Medium
1462Course Schedule IV41.7%Medium
1463Cherry Pickup II65.5%Hard
1464Maximum Product of Two Elements in an ArrayGo78.1%Easy
1465Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts30.8%Medium
1466Reorder Routes to Make All Paths Lead to the City Zero63.6%Medium
1467Probability of a Two Boxes Having The Same Number of Distinct Balls61.1%Hard
1468Calculate Salaries78.0%Medium
1469Find All The Lonely Nodes81.5%Easy
1470Shuffle the ArrayGo89.0%Easy
1471The k Strongest Values in an Array57.0%Medium
1472Design Browser History64.5%Medium
1473Paint House III48.1%Hard
1474Delete N Nodes After M Nodes of a Linked List74.2%Easy
1475Final Prices With a Special Discount in a Shop75.7%Easy
1476Subrectangle Queries90.5%Medium
1477Find Two Non-overlapping Sub-arrays Each With Target Sum29.8%Medium
1478Allocate Mailboxes55.0%Hard
1479Sales by Day of the Week83.4%Hard
1480Running Sum of 1d Array90.6%Easy
1481Least Number of Unique Integers after K Removals53.7%Medium
1482Minimum Number of Days to Make m Bouquets45.7%Medium
1483Kth Ancestor of a Tree Node27.6%Hard
1484Group Sold Products By The Date86.0%Easy
1485Clone Binary Tree With Random Pointer81.4%Medium
1486XOR Operation in an Array85.1%Easy
1487Making File Names Unique29.2%Medium
1488Avoid Flood in The City25.3%Medium
1489Find Critical and Pseudo-Critical Edges in Minimum Spanning Tree50.5%Hard
1490Clone N-ary Tree84.7%Medium
1491Average Salary Excluding the Minimum and Maximum Salary70.2%Easy
1492The kth Factor of n68.0%Medium
1493Longest Subarray of 1's After Deleting One Element58.4%Medium
1494Parallel Courses II32.2%Hard
1495Friendly Movies Streamed Last Month52.9%Easy
1496Path Crossing55.9%Easy
1497Check If Array Pairs Are Divisible by k41.2%Medium
1498Number of Subsequences That Satisfy the Given Sum Condition36.7%Medium
1499Max Value of Equation44.6%Hard
1500Design a File Sharing System46.4%Medium
1501Countries You Can Safely Invest In63.8%Medium
1502Can Make Arithmetic Progression From Sequence73.4%Easy
1503Last Moment Before All Ants Fall Out of a Plank51.5%Medium
1504Count Submatrices With All Ones61.6%Medium
1505Minimum Possible Integer After at Most K Adjacent Swaps On Digits36.1%Hard
1506Find Root of N-Ary Tree79.8%Medium
1507Reformat Date60.5%Easy
1508Range Sum of Sorted Subarray Sums68.6%Medium
1509Minimum Difference Between Largest and Smallest Value in Three Moves50.9%Medium
1510Stone Game IV50.2%Hard
1511Customer Order Frequency77.0%Easy
1512Number of Good Pairs88.7%Easy
1513Number of Substrings With Only 1s40.4%Medium
1514Path with Maximum Probability36.5%Medium
1515Best Position for a Service Centre35.8%Hard
1516Move Sub-Tree of N-Ary Tree60.2%Hard
1517Find Users With Valid E-Mails71.2%Easy
1518Water Bottles63.1%Easy
1519Number of Nodes in the Sub-Tree With the Same Label35.1%Medium
1520Maximum Number of Non-Overlapping Substrings32.7%Hard
1521Find a Value of a Mysterious Function Closest to Target43.3%Hard
1522Diameter of N-Ary Tree70.0%Medium
1523Count Odd Numbers in an Interval Range55.7%Easy
1524Number of Sub-arrays With Odd Sum36.3%Medium
1525Number of Good Ways to Split a String70.0%Medium
1526Minimum Number of Increments on Subarrays to Form a Target Array57.5%Hard
1527Patients With a Condition88.4%Easy
1528Shuffle String86.1%Easy
1529Bulb Switcher IV70.4%Medium
1530Number of Good Leaf Nodes Pairs53.4%Medium
1531String Compression II28.6%Hard
1532The Most Recent Three Orders75.1%Medium
1533Find the Index of the Large Integer57.7%Medium
1534Count Good Triplets79.4%Easy
1535Find the Winner of an Array Game45.5%Medium
1536Minimum Swaps to Arrange a Binary Grid41.5%Medium
1537Get the Maximum Score35.7%Hard
1538Guess the Majority in a Hidden Array56.9%Medium
----------------------------------------------------------------------------------------------------------------------

下面这些是免费的算法题,但是暂时还不能使用 Go 解答的:

暂无


二.分类

Array

Problems List in there

String

Problems List in there

Two Pointers

  • 双指针滑动窗口的经典写法。右指针不断往右移,移动到不能往右移动为止(具体条件根据题目而定)。当右指针到最右边以后,开始挪动左指针,释放窗口左边界。第 3 题,第 76 题,第 209 题,第 424 题,第 438 题,第 567 题,第 713 题,第 763 题,第 845 题,第 881 题,第 904 题,第 978 题,第 992 题,第 1004 题,第 1040 题,第 1052 题。
left, right :=0, -1forleft<len(s) {
ifright+1<len(s) &&freq[s[right+1]-'a'] ==0 {
freq[s[right+1]-'a']++right++
} else {
freq[s[left]-'a']--left++
}
result=max(result, right-left+1)
}
  • 快慢指针可以查找重复数字,时间复杂度 O(n),第 287 题。
  • 替换字母以后,相同字母能出现连续最长的长度。第 424 题。
  • SUM 问题集。第 1 题,第 15 题,第 16 题,第 18 题,第 167 题,第 923 题,第 1074 题。

Problems List in there

Linked List

  • 巧妙的构造虚拟头结点。可以使遍历处理逻辑更加统一。
  • 灵活使用递归。构造递归条件,使用递归可以巧妙的解题。不过需要注意有些题目不能使用递归,因为递归深度太深会导致超时和栈溢出。
  • 链表区间逆序。第 92 题。
  • 链表寻找中间节点。第 876 题。链表寻找倒数第 n 个节点。第 19 题。只需要一次遍历就可以得到答案。
  • 合并 K 个有序链表。第 21 题,第 23 题。
  • 链表归类。第 86 题,第 328 题。
  • 链表排序,时间复杂度要求 O(n * log n),空间复杂度 O(1)。只有一种做法,归并排序,至顶向下归并。第 148 题。
  • 判断链表是否存在环,如果有环,输出环的交叉点的下标;判断 2 个链表是否有交叉点,如果有交叉点,输出交叉点。第 141 题,第 142 题,第 160 题。

Problems List in there

Stack

  • 括号匹配问题及类似问题。第 20 题,第 921 题,第 1021 题。
  • 栈的基本 pop 和 push 操作。第 71 题,第 150 题,第 155 题,第 224 题,第 225 题,第 232 题,第 946 题,第 1047 题。
  • 利用栈进行编码问题。第 394 题,第 682 题,第 856 题,第 880 题。
  • 单调栈利用栈维护一个单调递增或者递减的下标数组。第 84 题,第 456 题,第 496 题,第 503 题,第 739 题,第 901 题,第 907 题,第 1019 题。

Problems List in there

Tree

Problems List in there

Dynamic Programming

Problems List in there

Backtracking

  • 排列问题 Permutations。第 46 题,第 47 题。第 60 题,第 526 题,第 996 题。
  • 组合问题 Combination。第 39 题,第 40 题,第 77 题,第 216 题。
  • 排列和组合杂交问题。第 1079 题。
  • N 皇后终极解法(二进制解法)。第 51 题,第 52 题。
  • 数独问题。第 37 题。
  • 四个方向搜索。第 79 题,第 212 题,第 980 题。
  • 子集合问题。第 78 题,第 90 题。
  • Trie。第 208 题,第 211 题。
  • BFS 优化。第 126 题,第 127 题。
  • DFS 模板。(只是一个例子,不对应任何题)
funccombinationSum2(candidates []int, targetint) [][]int {
iflen(candidates) ==0 {
return [][]int{}
}
c, res:= []int{}, [][]int{}
sort.Ints(candidates)
findcombinationSum2(candidates, target, 0, c, &res)
returnres
}
funcfindcombinationSum2(nums []int, target, indexint, c []int, res*[][]int) {
iftarget==0 {
b:=make([]int, len(c))
copy(b, c)
*res=append(*res, b)
return
}
fori:=index; i<len(nums); i++ {
ifi>index&&nums[i] ==nums[i-1] { // 这里是去重的关键逻辑continue
}
iftarget>=nums[i] {
c=append(c, nums[i])
findcombinationSum2(nums, target-nums[i], i+1, c, res)
c=c[:len(c)-1]
}
}
}
  • BFS 模板。(只是一个例子,不对应任何题)
funcupdateMatrix_BFS(matrix [][]int) [][]int {
res:=make([][]int, len(matrix))
iflen(matrix) ==0||len(matrix[0]) ==0 {
returnres
}
queue:=make([][]int, 0)
fori, _:=rangematrix {
res[i] =make([]int, len(matrix[0]))
forj, _:=rangeres[i] {
ifmatrix[i][j] ==0 {
res[i][j] =-1queue=append(queue, []int{i, j})
}
}
}
level:=1forlen(queue) >0 {
size:=len(queue)
forsize>0 {
size-=1node:=queue[0]
queue=queue[1:]
i, j:=node[0], node[1]
for_, direction:=range [][]int{{-1, 0}, {1, 0}, {0, 1}, {0, -1}} {
x:=i+direction[0]
y:=j+direction[1]
ifx<0||x>=len(matrix) ||y<0||y>=len(matrix[0]) ||res[x][y] <0||res[x][y] >0 {
continue
}
res[x][y] =levelqueue=append(queue, []int{x, y})
}
}
level++
}
fori, row:=rangeres {
forj, cell:=rangerow {
ifcell==-1 {
res[i][j] =0
}
}
}
returnres
}

Problems List in there

Depth First Search

Problems List in there

Breadth First Search

Problems List in there

Binary Search

  • 二分搜索的经典写法。需要注意的三点:
    1. 循环退出条件,注意是 low <= high,而不是 low < high。
    2. mid 的取值,mid := low + (high-low)>>1
    3. low 和 high 的更新。low = mid + 1,high = mid - 1。
funcbinarySearchMatrix(nums []int, targetint) int {
low, high:=0, len(nums)-1forlow<=high {
mid:=low+ (high-low)>>1ifnums[mid] ==target {
returnmid
} elseifnums[mid] >target {
high=mid-1
} else {
low=mid+1
}
}
return-1
}
  • 二分搜索的变种写法。有 4 个基本变种:
    1. 查找第一个与 target 相等的元素,时间复杂度 O(logn)
    2. 查找最后一个与 target 相等的元素,时间复杂度 O(logn)
    3. 查找第一个大于等于 target 的元素,时间复杂度 O(logn)
    4. 查找最后一个小于等于 target 的元素,时间复杂度 O(logn)
// 二分查找第一个与 target 相等的元素,时间复杂度 O(logn)funcsearchFirstEqualElement(nums []int, targetint) int {
low, high:=0, len(nums)-1forlow<=high {
mid:=low+ ((high-low) >>1)
ifnums[mid] >target {
high=mid-1
} elseifnums[mid] <target {
low=mid+1
} else {
if (mid==0) || (nums[mid-1] !=target) { // 找到第一个与 target 相等的元素returnmid
}
high=mid-1
}
}
return-1
}
// 二分查找最后一个与 target 相等的元素,时间复杂度 O(logn)funcsearchLastEqualElement(nums []int, targetint) int {
low, high:=0, len(nums)-1forlow<=high {
mid:=low+ ((high-low) >>1)
ifnums[mid] >target {
high=mid-1
} elseifnums[mid] <target {
low=mid+1
} else {
if (mid==len(nums)-1) || (nums[mid+1] !=target) { // 找到最后一个与 target 相等的元素returnmid
}
low=mid+1
}
}
return-1
}
// 二分查找第一个大于等于 target 的元素,时间复杂度 O(logn)funcsearchFirstGreaterElement(nums []int, targetint) int {
low, high:=0, len(nums)-1forlow<=high {
mid:=low+ ((high-low) >>1)
ifnums[mid] >=target {
if (mid==0) || (nums[mid-1] <target) { // 找到第一个大于等于 target 的元素returnmid
}
high=mid-1
} else {
low=mid+1
}
}
return-1
}
// 二分查找最后一个小于等于 target 的元素,时间复杂度 O(logn)funcsearchLastLessElement(nums []int, targetint) int {
low, high:=0, len(nums)-1forlow<=high {
mid:=low+ ((high-low) >>1)
ifnums[mid] <=target {
if (mid==len(nums)-1) || (nums[mid+1] >target) { // 找到最后一个小于等于 target 的元素returnmid
}
low=mid+1
} else {
high=mid-1
}
}
return-1
}
  • 在基本有序的数组中用二分搜索。经典解法可以解,变种写法也可以写,常见的题型,在山峰数组中找山峰,在旋转有序数组中找分界点。第 33 题,第 81 题,第 153 题,第 154 题,第 162 题,第 852 题
funcpeakIndexInMountainArray(A []int) int {
low, high:=0, len(A)-1forlow<high {
mid:=low+ (high-low)>>1// 如果 mid 较大,则左侧存在峰值,high = m,如果 mid + 1 较大,则右侧存在峰值,low = mid + 1ifA[mid] >A[mid+1] {
high=mid
} else {
low=mid+1
}
}
returnlow
}
  • max-min 最大值最小化问题。求在最小满足条件的情况下的最大值。第 410 题,第 875 题,第 1011 题,第 1283 题。

Problems List in there

Math

Problems List in there

Hash Table

Problems List in there

Sort

  • 深刻的理解多路快排。第 75 题。
  • 链表的排序,插入排序(第 147 题)和归并排序(第 148 题)
  • 桶排序和基数排序。第 164 题。
  • "摆动排序"。第 324 题。
  • 两两不相邻的排序。第 767 题,第 1054 题。
  • "饼子排序"。第 969 题。

Problems List in there

Bit Manipulation

  • 异或的特性。第 136 题,第 268 题,第 389 题,第 421 题,
x^0=xx^11111……1111=~xx^ (~x) =11111……1111x^x=0a^b=c=>a^c=b=>b^c=a (交换律)
a^b^c=a^ (b^c) = (a^b^c (结合律)
  • 构造特殊 Mask,将特殊位置放 0 或 1。
x最右边的n位清零x& ( ~0<<n )
获取x的第n位值(0或者1),(x>>n) &1获取x的第n位的幂值x& (1<< (n-1))
仅将第n位置为1x| (1<<n)
仅将第n位置为0x& (~(1<<n))
x最高位至第n()清零x& ((1<<n) -1)
将第n位至第0()清零x& (~((1<< (n+1)) -1))
  • 有特殊意义的 & 位操作运算。第 260 题,第 201 题,第 318 题,第 371 题,第 397 题,第 461 题,第 693 题,
X&1==1判断是否是奇数(偶数)
X&= (X-1) 将最低位(LSB)1清零X&-X得到最低位(LSB)1X&~X=0

Problems List in there

Union Find

  • 灵活使用并查集的思想,熟练掌握并查集的模板,模板中有两种并查集的实现方式,一种是路径压缩 + 秩优化的版本,另外一种是计算每个集合中元素的个数 + 最大集合元素个数的版本,这两种版本都有各自使用的地方。能使用第一类并查集模板的题目有:第 128 题,第 130 题,第 547 题,第 684 题,第 721 题,第 765 题,第 778 题,第 839 题,第 924 题,第 928 题,第 947 题,第 952 题,第 959 题,第 990 题。能使用第二类并查集模板的题目有:第 803 题,第 952 题。第 803 题秩优化和统计集合个数这些地方会卡时间,如果不优化,会 TLE。
  • 并查集是一种思想,有些题需要灵活使用这种思想,而不是死套模板,如第 399 题,这一题是 stringUnionFind,利用并查集思想实现的。这里每个节点是基于字符串和 map 的,而不是单纯的用 int 节点编号实现的。
  • 有些题死套模板反而做不出来,比如第 685 题,这一题不能路径压缩和秩优化,因为题目中涉及到有向图,需要知道节点的前驱节点,如果路径压缩了,这一题就没法做了。这一题不需要路径压缩和秩优化。
  • 灵活的抽象题目给的信息,将给定的信息合理的编号,使用并查集解题,并用 map 降低时间复杂度,如第 721 题,第 959 题。
  • 关于地图,砖块,网格的题目,可以新建一个特殊节点,将四周边缘的砖块或者网格都 union() 到这个特殊节点上。第 130 题,第 803 题。
  • 能用并查集的题目,一般也可以用 DFS 和 BFS 解答,只不过时间复杂度会高一点。

Problems List in there

Sliding Window

  • 双指针滑动窗口的经典写法。右指针不断往右移,移动到不能往右移动为止(具体条件根据题目而定)。当右指针到最右边以后,开始挪动左指针,释放窗口左边界。第 3 题,第 76 题,第 209 题,第 424 题,第 438 题,第 567 题,第 713 题,第 763 题,第 845 题,第 881 题,第 904 题,第 978 题,第 992 题,第 1004 题,第 1040 题,第 1052 题。
left, right :=0, -1forleft<len(s) {
ifright+1<len(s) &&freq[s[right+1]-'a'] ==0 {
freq[s[right+1]-'a']++right++
} else {
freq[s[left]-'a']--left++
}
result=max(result, right-left+1)
}
  • 滑动窗口经典题。第 239 题,第 480 题。

Problems List in there

Segment Tree

  • 线段数的经典数组实现写法。将合并两个节点 pushUp 逻辑抽象出来了,可以实现任意操作(常见的操作有:加法,取 max,min 等等)。第 218 题,第 303 题,第 307 题,第 699 题。
  • 计数线段树的经典写法。第 315 题,第 327 题,第 493 题。
  • 线段树的树的实现写法。第 715 题,第 732 题。
  • 区间懒惰更新。第 218 题,第 699 题。
  • 离散化。离散化需要注意一个特殊情况:假如三个区间为 [1,10] [1,4] [6,10],离散化后 x[1]=1,x[2]=4,x[3]=6,x[4]=10。第一个区间为 [1,4],第二个区间为 [1,2],第三个区间为 [3,4],这样一来,区间一 = 区间二 + 区间三,这和离散前的模型不符,离散前,很明显,区间一 > 区间二 + 区间三。正确的做法是:在相差大于 1 的数间加一个数,例如在上面 1 4 6 10 中间加 5,即可 x[1]=1,x[2]=4,x[3]=5,x[4]=6,x[5]=10。这样处理之后,区间一是 1-5 ,区间二是 1-2 ,区间三是 4-5 。
  • 灵活构建线段树。线段树节点可以存储多条信息,合并两个节点的 pushUp 操作也可以是多样的。第 850 题,第 1157 题。

线段树题型从简单到困难:

  1. 单点更新:
    HDU 1166 敌兵布阵 update:单点增减 query:区间求和
    HDU 1754 I Hate It update:单点替换 query:区间最值
    HDU 1394 Minimum Inversion Number update:单点增减 query:区间求和
    HDU 2795 Billboard query:区间求最大值的位子(直接把update的操作在query里做了)
  2. 区间更新:
    HDU 1698 Just a Hook update:成段替换 (由于只query一次总区间,所以可以直接输出 1 结点的信息)
    POJ 3468 A Simple Problem with Integers update:成段增减 query:区间求和
    POJ 2528 Mayor’s posters 离散化 + update:成段替换 query:简单hash
    POJ 3225 Help with Intervals update:成段替换,区间异或 query:简单hash
  3. 区间合并(这类题目会询问区间中满足条件的连续最长区间,所以PushUp的时候需要对左右儿子的区间进行合并):
    POJ 3667 Hotel update:区间替换 query:询问满足条件的最左端点
  4. 扫描线(这类题目需要将一些操作排序,然后从左到右用一根扫描线扫过去最典型的就是矩形面积并,周长并等题):
    HDU 1542 Atlantis update:区间增减 query:直接取根节点的值
    HDU 1828 Picture update:区间增减 query:直接取根节点的值

Problems List in there

Binary Indexed Tree

Problems List in there


Thank you for reading here. This is bonus. You can download my 《ACM-ICPC Algorithm Template》

♥️ Thanks

Thanks for your Star!

Stargazers over time

About

离线版本的电子书《LeetCode Cookbook》PDF https://github.com/halfrost/LeetCode-Go/releases/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages