作者:夏天 链接:https://www.zhihu.com/question/331477666/answer/2251165004 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

MisterBooo/LeetCodeAnimation: Demonstrate all the questions on LeetCode in the form of animation.(用动画的形式呈现解LeetCode题目的思路) (github.com)

(一)数组

数组的遍历 485、495、414、628

统计数组中的元素 645、697、448、442、41、274

数组的改变、移动 453、665、283

二维数组及滚动数组 118、119、661、598、419

数组的旋转 189、396

特定顺序遍历二维数组 54、59、498

二维数组变换 566、48、73、289

前缀和数组 303、304、238

(二)字符串

字符 520

回文串的定义 125

公共前缀 14

单词 434、58

字符串的反转 344、541、557、151

字符的统计 387、389、383、242、49、451、423、657、551、696、467、535

数字与字符串间转换 299、412、506、539、553、537、592、640、38、443、8、13、12、273、165、481

子序列 392、524、521、522

高精度运算 66、67、415、43、306

字符串变换 482、6、68

字符串匹配 28、686、459、214

中心拓展法 5、647

(三)数与位

数字的位操作 7、9、479、564、231、342、326、504、263、190、191、476、461、477、693、393、172、458、258、319、405、171、168、670、233、357、400

简单数学题 492、29、507

快速幂 50、372

(四)栈与递归

用栈访问最后若干元素 682、71、388

栈与计算器 150、227、224

栈与括号匹配 20、636、591、32

递归 385、341、394

(五)链表

链表的删除 203、237、19

链表的遍历 430

链表的旋转与反转 61、24、206、92、25

链表高精度加法 2、445

链表的合并 21、23

(六)哈希表

哈希表的查找、插入及删除 217、633、349、128、202、500、290、532、205、166、466、138

哈希表与索引 1、167、599、219、220

哈希表与统计 594、350、554、609、454、18

哈希表与前缀和 560、523、525

(七)贪心算法

数组与贪心算法 605、121、122、561、455、575、135、409、621、179、56、57、228、452、435、646、406、48、169、215、75、324、517、649、678、420

子数组与贪心算法 53、134、581、152

子序列与贪心算法 334、376、659

数字与贪心 343

单调栈法 496、503、456、316、402、321、84、85

(八)双指针法

头尾指针 345、680、167、15、16、18、11、42

同向双指针、滑动窗口 27、26、80、83、82、611、187、643、674、209、3、438、567、424、76、30

分段双指针 86、328、160、88、475

快慢指针 141、142、143、234、457、287

(九)树

树与递归 100、222、101、226、437、563、617、508、572、543、654、687、87

树的层次遍历 102、429、690、559、662、671、513、515、637、103、107、257、623、653、104、111、112、113、129、404、199、655、116、117

树的前序遍历 144、589

树的前序序列化 606、331、652、297、449

树的后序遍历 145、590

树的中序遍历与二叉搜索树 94、700、530、538、230、98、173、669、450、110、95、108、109

重构二叉树 105、106

二叉树的展开 114

最近公共祖先 235、236

Morris中序遍历 501、99

四叉树 558、427

(十)图与搜索

图的建立与应用 565

深度优先搜索 17、397

回溯法 526、401、36、37、51、52、77、39、216、40、46、47、31、556、60、491、78、90、79、93、332

回溯法与表达式 241、282、679

回溯法与括号 22、301

回溯法与贪心 488

广度优先搜索 133、200、695、463、542、130、417、529、127、126、433、675

并查集 547、684、685

拓扑排序 399、207、210

有限状态自动机 65、468

(十一)二分查找

二分查找应用(简单) 374、35、278、367、69、441

二分查找应用(中等) 34、540、275、436、300、354、658、162、4

二分查找与旋转数组 153、154、33、81

二分查找与矩阵 74、240

二分答案法 378、668、410、483

(十二)二进制运算的应用

异或的应用 89、136、137、260、268

与或非的应用 371、318、201

(十三)动态规划

数组中的动态规划 70、338、45、55、198、213、650、91、639、552、123、188、309、32、264、313、403

子数组、子序列中的动态规划 689、413、446、368、416、279

背包问题 322、518、474、494、377

矩阵中的动态规划 62、63、64、120、576、688、221、629、174、96、329

动态规划与字符串匹配 583、72、97、115、516、132、131、139、140、514、10、44

状态压缩动态规划 464、691、698、638、473

区间中的动态规划 486、664、375、312、546

树形dp 337、124

数位dp 233、600

(十四)数据结构

数据结构设计——栈与队列 225、232、284、622、641、155

数据结构设计——哈希表 676、355、380、381

数据结构设计——哈希与双向链表 432、146、460

前缀树 208、211、648、386、677、472、421、212、336、440

堆 23、373、378、632、347、692、502、630、407、295、480

树状数组 307、315、493、327、673

线段树 699

平衡树(set/map) 352、218、363

(十五)采样

按权值采样 528、497

蓄水池抽样 382、398

拒绝采样 470、478、519

(十六)计算几何

计算几何基础 593、447、223、149

分类讨论法 335

凸包 587

覆盖问题 391

(十七)常用技巧与算法

博弈论 292

分块 239、164

倍增法 330

拓展欧几里得算法 365

洗牌算法 384

找规律 390、672

分治法 395、667

排序算法 147、148

线性筛 204

摩尔投票法 229