Skip to content

jasonmayday/LeetCode

Repository files navigation

LeetCode 题目分类

1. 数组 & 列表

注:子串sub-string(子数组 sub-array)是连续的,而子序列 subsequence 可以不连续。 数组的旋转:把一个数组最开始的若干个元素搬到数组的末尾,称之为数组的旋转。

题目分类 题目编号
数组的遍历 414, 485, 495, 628, 821
统计数组中的元素 41, 169, 274, 442, 448, 645, 697, 954, 2210
数组的改变, 移动 280, 283, 324, 453, 665, 760, 1243
数组的比较 1826, 2215
数组的旋转 189, 396
数组的翻转 969
特定顺序遍历二维数组 54, 59, 498
移除元素 26, 27, 283, 844, 977
二维数组变换 48, 73, 289, 566
二维数组及滚动数组 118, 119, 419, 598, 661
前缀和 preSum 238, 303, 304, 643, 724, 1423, 2055
子数组 1708
差分数组 798, 1109, 2200
Top K 问题 215, 347, 378, 703, 剑指40

2. 字符串

题目分类 题目编号
字符 520
回文串 125, 266
公共前缀 14, 720, 1455, 2185
单词 58, 434, 819
字符串旋转 & 平移 796, 1427
字符串反转 151, 246, 344, 541, 557, 917, 1056
字符的统计 49, 242, 383, 387, 389, 423, 451, 467, 535, 551, 657, 696
数字与字符串间转换 8, 12, 13, 38, 165, 273, 299, 412, 443, 481, 506, 537, 539, 553, 592, 640
子串 1180, 1933
子序列 392, 524, 521, 522
高精度运算 43, 66, 67, 306, 415
字符串变换 6, 68, 394, 408, 482
字符串匹配 28, 214, 459, 686
中心拓展法 5, 647

3. 数 & 位 & 位操作

题目分类 题目编号
数字的位操作 (简单) 9, 58, 168, 171, 190, 191, 231, 263, 326, 342, 405, 461, 476, 504, 693, 800, 1085
数字的位操作 (中等) 7, 172, 233, 319, 357, 393, 400, 458, 477, 479, 564, 670,
简单数学题 29, 492, 507
快速幂 50, 372

4. 字典 & 集合 & 哈希表

题目分类 题目编号
哈希表的查找, 插入及删除 128, 138, 166, 202, 205, 217, 290, 349, 466, 500, 532, 633
哈希表与索引 1, 167, 219, 220, 599
哈希表与统计 18, 350, 454, 554, 594, 609, 1086, 1133
哈希表与前缀和 523, 525, 560

5. 栈

题目分类 题目编号
用栈访问最后若干元素 71, 388, 682
栈与计算器 150, 224, 227
栈与括号匹配 20, 32, 591, 636
最大栈 716

6. 链表

题目分类 题目编号
链表的删除 19, 82, 83, 203, 237, 1474
链表的遍历 430, 876, 2181
链表的旋转与反转 24, 25, 61, 92, 143, 206
链表高精度加法 2, 445
链表的合并 21, 23
找节点问题 142, 160
链表的其他变化 328

7. 树

题目分类 题目编号
树与递归 87, 100, 101, 222, 437, 508, 543, 563, 572, 617, 654, 687
树的层次/层序遍历 102, 103, 107, 112, 113, 116, 117, 129, 199, 257, 404, 429, 513, 515, 623, 637, 655, 662, 671, 690
树的前序遍历 144, 589
树的前序序列化 297, 331, 449, 606, 652
树的后序遍历 145, 590
树的中序遍历 & 二叉搜索树 94, 95, 98, 108, 109, 173, 230, 270, 450, 530, 538, 653, 669, 700, 1305, 剑指54
树的深度 104, 111, 559
平衡二叉树 110, 1382
重构二叉树 105, 106, 156, 226, 897
二叉树的展开 114
最近公共祖先 235, 236
Morris中序遍历 501, 99
四叉树 558, 427

8. 双指针法

题目分类 题目编号
头尾指针 11, 15, 16, 18, 42, 167, 345, 680, 1099
滑动窗口 (简单) 485, 643, 674, 1176, 1984
滑动窗口 (中等) 3, 159, 187, 209, 424, 438, 487, 567, 611, 1004, 1052, 1151, 1208, 1423, 1695, 2024
滑动窗口 (困难) 30, 76, 239, 632, 727,
分段双指针 86, 88, 160, 163, 328, 475
快慢指针 26, 27, 80, 141, 142, 143, 234, 287, 457, 2182, 剑指22
多指针 1213

9. 动态规划

题目分类 题目编号
数组中的动态规划 (简单) 70, 338, 509, 746
数组中的动态规划 (中等) 45, 55, 91, 198, 213, 264, 309, 313, 435, 487, 650, 714, 2100
数组中的动态规划 (困难) 32, 123, 188, 403, 552, 639
子数组中的动态规划 53, 413, 689
子序列中的动态规划 300, 368, 446, 674, 727
背包问题: 0-1背包 416, 474, 494, 1049
背包问题: 完全背包 70, 279, 322, 377, 518
矩阵中的动态规划 62, 63, 64, 96, 120, 174, 221, 329, 576, 629, 688
动态规划与字符串匹配 10, 44, 72, 97, 115, 131, 132, 139, 140, 514, 516, 583
状态压缩动态规划 464, 473, 638, 691, 698, 1494
区间中的动态规划 312, 375, 486, 546, 664
树形dp 124, 337
数位dp 233, 357, 600

10. 贪心算法

题目分类 题目编号
数组贪心算法 (简单) 121, 228, 409, 455, 561, 575, 605, 860, 1005, 2016
数组贪心算法 (中等) 45, 55, 56, 57, 75, 122, 134, 179, 406, 435, 452, 621, 646, 649, 678, 714, 1414, 2038
数组贪心算法 (困难) 32, 135, 420, 517
子数组与贪心算法 53, 134, 152, 581
子序列与贪心算法 334, 376, 659, 674
数字与贪心 343
单调栈 + 贪心 84, 85, 316, 321, 402, 456, 496, 503, 1081

11. 递归

题目分类 题目编号
递归 341, 385, 394
记忆化递归 526, 576

12. 回溯法

题目分类 题目编号
分割 93, 131
子集 78, 90, 2044
排列 46, 47, 526
组合 17, 39, 40, 77, 139, 216

13. 图与搜索

题目分类 题目编号
图的建立与应用 565
BFS 广度优先搜索 126, 127, 130, 133, 200, 310, 417, 433, 463, 529, 542, 675, 695, 2039
DFS 深度优先搜索 17, 365, 397, 399, 417, 2049
回溯法 31, 36, 37, 39, 40, 46, 47, 51, 52, 60, 77, 78, 79, 90, 93, 216, 332, 401, 491, 526, 556
回溯法与表达式 241, 282, 679
回溯法与括号 22, 301
回溯法与贪心 488
并查集 399, 547, 684, 685
拓扑排序 207, 210, 310, 1719
有限状态自动机 65, 468
Dijkstra算法 505, 743, 787, 1334, 1514, 1631

14. 二分查找

题目分类 题目编号
二分查找应用(简单) 35, 69, 278, 367, 374, 441, 704, 744, 1064, 1150
二分查找应用(中等) 4, 34, 162, 275, 287, 300, 354, 436, 540, 611, 658, 1237, 1300
二分查找与旋转数组 33, 81, 153, 154, 852, 1095
二分查找与矩阵 74, 240
二分答案法 378, 410, 483, 668, 875, 1011, 1283, 1292, 1482, 1552

15. 二进制、位运算

题目分类 题目编号
(与 &) (或 ) (非 ~)
异或 ^ 89, 136, 137, 260, 268, 2220, 剑指65

16. 数据结构

题目分类 题目编号
数据结构设计——栈与队列 155, 225, 232, 284, 622, 641, 933, 面试题03.06
数据结构设计——哈希表 355, 380, 381, 676
数据结构设计——哈希与双向链表 146, 432, 460
前缀树 / 字典树 / Trie树 208, 211, 212, 336, 386, 421, 440, 472, 648, 600, 677, 1065
堆 & 优先队列 23, 215, 253, 295, 347, 373, 378, 407, 480, 502, 630, 632, 692, 703
树状数组 307, 315, 327, 493, 673
线段树 699
平衡树(set/map) 218, 352, 363

17. 采样

题目分类 题目编号
按权值采样 497, 528
水塘抽样 382, 398
拒绝采样 470, 478, 519

18. 计算几何

题目分类 题目编号
计算几何基础 149, 223, 447, 593
分类讨论法 335
凸包 587 (Jarvis 算法、Graham 算法、 Andrew 算法)
覆盖问题 391

19. 常用技巧与算法

题目分类 题目编号
博弈论 292
分块 239, 164
倍增法 330
拓展欧几里得算法 365
洗牌算法 384
找规律 390, 672
分治法 395, 667
排序算法 147, 148, 1122
线性筛 204
摩尔投票法 169, 229

About

My LeetCode Solutions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published