{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":"Hello Algo <p>Data Structures and Algorithms Crash Course with Animated Illustrations and Off-the-Shelf Code</p> <p> </p> <p> Dive In Clone Repo Get PDF </p> <p> </p> <p>The English edition is brewing...</p> <p>Feel free to engage in Chinese-to-English translation and pull request review! For guidelines, please see #914.</p> Endorsements <p>Quote</p> <p>\"An easy-to-understand book on data structures and algorithms, which guides readers to learn by minds-on and hands-on. Strongly recommended for algorithm beginners!\"</p> <p>\u2014\u2014 Junhui Deng, Professor of Computer Science, Tsinghua University</p> <p>Quote</p> <p>\"If I had 'Hello Algo' when I was learning data structures and algorithms, it would have been 10 times easier!\"</p> <p>\u2014\u2014 Mu Li, Senior Principal Scientist, Amazon</p> Animated illustrations <p>Easy to understandSmooth learning curve</p> <p>\"A picture is worth a thousand words.\"</p> Off-the-Shelf Code <p>Multi programming languagesRun with one click</p> <p>\"Talk is cheap. Show me the code.\"</p> Learning Together <p>Discussion and questions welcomeReaders progress together</p> <p>\"Chase the wind and moon, never stopping\"</p> <p>\"Beyond the plains, there are spring mountains\"</p> Preface <p>Two years ago, I shared the \"Sword Offer\" series of problem solutions on LeetCode, which received much love and support from many students. During my interactions with readers, the most common question I encountered was \"How to get started with algorithms.\" Gradually, I developed a deep interest in this question.</p> <p>Blindly solving problems seems to be the most popular method, being simple, direct, and effective. However, problem-solving is like playing a \"Minesweeper\" game, where students with strong self-learning abilities can successfully clear the mines one by one, but those with insufficient foundations may end up bruised from explosions, retreating step by step in frustration. Thoroughly reading textbooks is also common, but for students aiming for job applications, the energy consumed by graduation, resume submissions, and preparing for written tests and interviews makes tackling thick books a daunting challenge.</p> <p>If you are facing similar troubles, then you are lucky to have found this book. This book is my answer to this question, not necessarily the best solution, but at least an active attempt. Although this book won't directly land you an Offer, it will guide you through the \"knowledge map\" of data structures and algorithms, help you understand the shape, size, and distribution of different \"mines,\" and equip you with various \"demining methods.\" With these skills, I believe you can more comfortably solve problems and read literature, gradually building a complete knowledge system.</p> <p>I deeply agree with Professor Feynman's saying: \"Knowledge isn't free. You have to pay attention.\" In this sense, this book is not entirely \"free.\" To not disappoint the precious \"attention\" you pay to this book, I will do my utmost, investing the greatest \"attention\" to complete the creation of this book.</p> Author <p>Yudong Jin(Krahets), Senior Algorithm Engineer in a top tech company, Master's degree from Shanghai Jiao Tong University. The highest-read blogger across the entire LeetCode, his published \"Illustration of Algorithm Data Structures\"hasbeensubscribedtobyover300k.</p>Contribution<p>Thisbookiscontinuouslyimprovedwiththejointeffortsofmanycontributorsfromtheopen-sourcecommunity.Thankstoeachwriterwhoinvestedtheirtimeandenergy,listedintheordergeneratedbyGitHub:</p><p></p><p>Thecodereviewworkforthisbookwascompletedbycodingonion,Gonglja,gvenusleo,hpstory,justin\u2010tse,krahets,night-cruise,nuomi1,andReanon(listedinalphabeticalorder).Thankstothemfortheirtimeandeffort,ensuringthestandardizationanduniformityofthecodeinvarious