This commit is contained in:
krahets
2026-04-03 18:46:15 +08:00
parent 377736b1bd
commit 9d21ca86b0
352 changed files with 46563 additions and 11262 deletions
+97 -130
View File
@@ -5,7 +5,7 @@
<div class="starfield">
<div class="starfield-origin"></div>
</div>
<div class="hero-div">
<div class="hero-div hero-div--en">
<img src="../assets/hero/ground.png" alt="" style="position: absolute; width: auto; height: 26.445%; left: 28.211%; top: 54.145%;">
<img src="../assets/hero/links.png" alt="" style="position: absolute; width: auto; height: 78.751%; left: 10.545%; top: 7.326%;">
<a href="chapter_introduction/">
@@ -14,15 +14,15 @@
</a>
<a href="chapter_computational_complexity/">
<img src="../assets/hero/chapter_computational_complexity.png" alt="" style="height: 12.347%; left: 36.267%; top: 37.653%;">
<span style="left: 36.244%; top: 34.919%;">Complexity analysis</span>
<span style="left: 36.244%; top: 34.919%;">Complexity Analysis</span>
</a>
<a href="chapter_array_and_linkedlist/">
<img src="../assets/hero/chapter_array_and_linkedlist.png" alt="" style="height: 22.242%; left: 73.242%; top: 52.481%;">
<span style="left: 85.897%; top: 76.259%;">Array and linked list</span>
<span style="left: 85.897%; top: 76.259%;">Array and Linked List</span>
</a>
<a href="chapter_stack_and_queue/">
<img src="../assets/hero/chapter_stack_and_queue.png" alt="" style="height: 14.302%; left: 62.646%; top: 77.875%;">
<span style="left: 80.071%; top: 88.25%;">Stack and queue</span>
<span style="left: 80.071%; top: 88.25%;">Stack and Queue</span>
</a>
<a href="chapter_hashing/">
<img src="../assets/hero/chapter_hashing.png" alt="" style="height: 15.266%; left: 63.281%; top: 27.933%;">
@@ -50,7 +50,7 @@
</a>
<a href="chapter_divide_and_conquer/">
<img src="../assets/hero/chapter_divide_and_conquer.png" alt="" style="height: 18.681%; left: 32.721%; top: 4.816%;">
<span style="left: 29.42%; top: 6.679%;">Divide and conquer</span>
<span style="left: 29.42%; top: 6.679%;">Divide and Conquer</span>
</a>
<a href="chapter_backtracking/">
<img src="../assets/hero/chapter_backtracking.png" alt="" style="height: 17.338%; left: 4.875%; top: 32.925%;">
@@ -58,7 +58,7 @@
</a>
<a href="chapter_dynamic_programming/">
<img src="../assets/hero/chapter_dynamic_programming.png" alt="" style="height: 15.47%; left: 9.406%; top: 57.472%;">
<span style="left: 14.561%; top: 75.351%;">Dynamic programming</span>
<span style="left: 14.561%; top: 75.351%;">Dynamic Programming</span>
</a>
<a href="chapter_greedy/">
<img src="../assets/hero/chapter_greedy.png" alt="" style="height: 14.127%; left: 23.132%; top: 75.803%;">
@@ -71,13 +71,13 @@
<img style="height: min(9vh, 12vw);" src="https://readme-typing-svg.demolab.com/?font=Roboto&weight=400&duration=3500&pause=2000&color=FFF&center=true&vCenter=true&random=false&width=200&lines=Hello%2C+Algo!" alt="" />
<div style="pointer-events: auto;">
<p style="margin-top: max(-1vh, -2vw); margin-bottom: min(2vh, 3.5vw);">
Data structures and algorithms crash course with animated illustrations and off-the-shelf code
Data structures and algorithms tutorial with animated illustrations and ready-to-run code
</p>
<a href="chapter_hello_algo/" class="rounded-button">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.-->
<path d="M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z" />
</svg>
<span>Dive in</span>
<span>Get Started</span>
</a>
<a href="https://github.com/krahets/hello-algo" class="rounded-button">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512">
@@ -96,32 +96,8 @@
</div>
</section>
<!-- Section: brief introduction -->
<section data-md-color-scheme="slate" class="home-div">
<div class="section-content">
<img src="index.assets/hello_algo_header.png" style="width: 100%; max-width: 41.5em;" alt="Preview">
<div class="code-badge">
<img src="https://img.shields.io/badge/Python-snow?logo=python&logoColor=3776AB" alt="" />
<img src="https://img.shields.io/badge/Java-snow?logo=coffeescript&logoColor=FC4C02" alt="" />
<img src="https://img.shields.io/badge/C%2B%2B-snow?logo=c%2B%2B&logoColor=00599C" alt="" />
<img src="https://img.shields.io/badge/C-snow?logo=c&logoColor=A8B9CC" alt="" />
<img src="https://img.shields.io/badge/C%23-snow?logo=csharp&logoColor=512BD4" alt="" />
<img src="https://img.shields.io/badge/JS-snow?logo=javascript&logoColor=E9CE30" alt="" />
<img src="https://img.shields.io/badge/Go-snow?logo=go&logoColor=00ADD8" alt="" />
<img src="https://img.shields.io/badge/Swift-snow?logo=swift&logoColor=F05138" alt="" />
<img src="https://img.shields.io/badge/Rust-snow?logo=rust&logoColor=000000" alt="" />
<img src="https://img.shields.io/badge/Ruby-snow?logo=ruby&logoColor=CC342D" alt="" />
<img src="https://img.shields.io/badge/Kotlin-snow?logo=kotlin&logoColor=7F52FF" alt="" />
<img src="https://img.shields.io/badge/TS-snow?logo=typescript&logoColor=3178C6" alt="" />
<img src="https://img.shields.io/badge/Dart-snow?logo=dart&logoColor=0175C2" alt="" />
<img src="https://img.shields.io/badge/Zig-snow?logo=zig&logoColor=F7A41D" alt="" />
</div>
<p style="margin-top: 2em;">500 animated illustrations, 14 programming languages, and 3000 community Q&As to help you dive into data structures and algorithms.</p>
</div>
</section>
<!-- Section: reading -->
<section data-md-color-scheme="default" data-md-color-primary="white" class="home-div">
<section data-md-color-scheme="slate" data-md-color-primary="grey" class="home-div">
<div class="section-content">
<div class="reading-media">
<!-- devices -->
@@ -129,18 +105,6 @@
<!-- mac height = 248.1 mm -->
<!-- ipad height = 280.6mm -->
<!-- iphone height = 160.7mm -->
<div class="media-block">
<a href="chapter_paperbook/">
<div style="height: 8.17%;"></div>
<img class="device-on-hover" style="height: 66.83%;" src="../assets/hero/cover_render.png" alt="Cover">
<div class="text-button">
<span>Paperbook</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
<path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z" />
</svg>
</div>
</a>
</div>
<div class="media-block">
<a href="chapter_hello_algo/">
<div style="height: 4.34%;"></div>
@@ -166,28 +130,29 @@
</a>
</div>
</div>
<p style="margin-top: 2em;">500 animated illustrations, 14 programming languages, and 3,000 community Q&amp;As to help you get started with data structures and algorithms.</p>
</div>
</section>
<!-- Section: endorsements -->
<section data-md-color-scheme="slate" data-md-color-primary="grey" class="home-div">
<section data-md-color-scheme="slate" data-md-color-primary="grey" class="home-div home-div--black">
<div class="section-content">
<h3 style="text-align: center; margin: 1em auto;">Endorsements</h3>
<div class="intro-container" style="margin: 0 auto;">
<div class="intro-text endor-text">
<p style="margin-bottom: 0;">“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 style="font-weight: bold;">—— Junhui Deng, Professor, Department of computer science and technology, Tsinghua University</p>
<p style="margin-bottom: 0;">“An easy-to-understand introduction to data structures and algorithms that encourages readers to engage both mind and hands. Highly recommended for beginners!”</p>
<p style="font-weight: bold;">—— Junhui Deng, Professor, Department of Computer Science and Technology, Tsinghua University</p>
</div>
<div class="intro-text endor-text">
<p style="margin-bottom: 0;">“If I had 'Hello Algo' when I was learning data structures and algorithms, it would have been 10 times easier!”</p>
<p style="font-weight: bold;">—— Mu Li, Senior principal scientist, Amazon</p>
<p style="font-weight: bold;">—— Mu Li, Senior Principal Scientist, Amazon</p>
</div>
</div>
</div>
</section>
<!-- Section: features -->
<section data-md-color-scheme="default" data-md-color-primary="white" class="home-div">
<section data-md-color-scheme="slate" data-md-color-primary="grey" class="home-div">
<div class="section-content">
<div class="intro-container">
<div class="intro-text">
@@ -196,26 +161,26 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1.5em" width="1.5em" viewBox="0 0 640 512">
<path fill="var(--md-primary-bg-color)" d="M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z" />
</svg>
<h3 style="margin-left: 0.5em;">Animated illustrations</h3>
<h3 style="margin-left: 0.5em;">Animated Illustrations</h3>
</div>
<p style="margin: 0;">Its crafted for a smooth learning experience.</p>
<p class="intro-quote">"A picture is worth a thousand words."</p>
</div>
</div>
<img class="intro-image" src="index.assets/animation.gif" alt="Animation example">
<video class="intro-image" src="index.assets/animation.mp4" autoplay loop muted playsinline aria-label="Animation example"></video>
</div>
<div class="intro-container">
<img class="intro-image" src="index.assets/running_code.gif" alt="Running code example">
<video class="intro-image" src="index.assets/running_code.mp4" autoplay loop muted playsinline aria-label="Running code example"></video>
<div class="intro-text">
<div>
<div style="display: flex; align-items: center;">
<svg xmlns="http://www.w3.org/2000/svg" height="1.5em" width="1.5em" viewBox="0 0 640 512">
<path fill="var(--md-primary-bg-color)" d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z" />
</svg>
<h3 style="margin-left: 0.5em;">Off-the-shelf code</h3>
<h3 style="margin-left: 0.5em;">One-Click Runnable Code</h3>
</div>
<p style="margin: 0;">One click to run code in multiple languages.</p>
<p style="margin: 0;">Run code in multiple languages with one click.</p>
<p class="intro-quote">"Talk is cheap. Show me the code."</p>
</div>
</div>
@@ -228,23 +193,23 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1.5em" width="1.5em" viewBox="0 0 640 512">
<path fill="var(--md-primary-bg-color)" d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.7 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z" />
</svg>
<h3 style="margin-left: 0.5em;">Learning together</h3>
<h3 style="margin-left: 0.5em;">Learn Together</h3>
</div>
<p style="margin: 0;">Dont hesitate to ask or share your thoughts.</p>
<p style="margin: 0;">Ask questions, discuss ideas, and learn with others.</p>
<p class="intro-quote">"Learning by teaching."</p>
</div>
</div>
<img class="intro-image" src="index.assets/comment.gif" alt="Comments example">
<video class="intro-image" src="index.assets/comment.mp4" autoplay loop muted playsinline aria-label="Comments example"></video>
</div>
</div>
</section>
<!-- Section: special thanks -->
<section class="home-div" data-md-color-primary="grey" data-md-color-scheme="slate">
<section class="home-div home-div--black" data-md-color-primary="grey" data-md-color-scheme="slate">
<div class="section-content">
<h3 style="text-align: center; margin: 0 0 2em 0;">
Special thanks
Special Thanks
</h3>
<a href="https://go.warp.dev/hello-algo">
<img src="https://github.com/warpdotdev/brand-assets/raw/main/Github/Sponsor/Warp-Github-LG-02.png"
@@ -257,7 +222,7 @@
</section>
<!-- Section: contributors -->
<section data-md-color-scheme="default" data-md-color-primary="white" class="home-div">
<section data-md-color-scheme="slate" data-md-color-primary="grey" class="home-div">
<div class="section-content" style="max-width: 90vw;">
<!-- author -->
<div style="margin: 2em auto;">
@@ -272,9 +237,78 @@
</div>
</div>
<!-- translators -->
<div style="margin: 2em auto;">
<h3>Translators</h3>
<p>The English version of this book was reviewed by the following contributors. We thank them for their time and effort.</p>
<div class="profile-div en-translator-profile-div">
<div class="profile-cell">
<a href="https://github.com/yuelinxin">
<img class="profile-img" src="../assets/avatar/avatar_yuelinxin.jpg" alt="Reviewer: yuelinxin" />
<br><b>yuelinxin</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/K3v123">
<img class="profile-img" src="../assets/avatar/avatar_K3v123.jpg" alt="Reviewer: K3v123" />
<br><b>K3v123</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/magentaqin">
<img class="profile-img" src="../assets/avatar/avatar_magentaqin.jpg" alt="Reviewer: magentaqin" />
<br><b>magentaqin</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/QiLOL">
<img class="profile-img" src="../assets/avatar/avatar_QiLOL.jpg" alt="Reviewer: QiLOL" />
<br><b>QiLOL</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/Phoenix0415">
<img class="profile-img" src="../assets/avatar/avatar_Phoenix0415.jpg" alt="Reviewer: Phoenix0415" />
<br><b>Phoenix0415</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/SamJin98">
<img class="profile-img" src="../assets/avatar/avatar_SamJin98.jpg" alt="Reviewer: SamJin98" />
<br><b>SamJin98</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/yanedie">
<img class="profile-img" src="../assets/avatar/avatar_yanedie.jpg" alt="Reviewer: yanedie" />
<br><b>yanedie</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/RafaelCaso">
<img class="profile-img" src="../assets/avatar/avatar_RafaelCaso.jpg" alt="Reviewer: RafaelCaso" />
<br><b>RafaelCaso</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/pengchzn">
<img class="profile-img" src="../assets/avatar/avatar_pengchzn.jpg" alt="Reviewer: pengchzn" />
<br><b>pengchzn</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/thomasq0">
<img class="profile-img" src="../assets/avatar/avatar_thomasq0.jpg" alt="Reviewer: thomasq0" />
<br><b>thomasq0</b>
</a>
</div>
</div>
</div>
<!-- reviewers -->
<div style="margin: 2em auto;">
<h3>Code reviewers</h3>
<h3>Code Reviewers</h3>
<p>The multilingual code versions of this book were made possible by the following developers. We appreciate their efforts and contributions!</p>
<div class="profile-div">
<div class="profile-cell">
<a href="https://github.com/coderonion">
@@ -363,73 +397,6 @@
</div>
</div>
<!-- translators -->
<div style="margin: 2em auto;">
<h3>English version reviewers</h3>
<div class="profile-div">
<div class="profile-cell">
<a href="https://github.com/yuelinxin">
<img class="profile-img" src="../assets/avatar/avatar_yuelinxin.jpg" alt="Reviewer: yuelinxin" />
<br><b>yuelinxin</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/K3v123">
<img class="profile-img" src="../assets/avatar/avatar_K3v123.jpg" alt="Reviewer: K3v123" />
<br><b>K3v123</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/QiLOL">
<img class="profile-img" src="../assets/avatar/avatar_QiLOL.jpg" alt="Reviewer: QiLOL" />
<br><b>QiLOL</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/Phoenix0415">
<img class="profile-img" src="../assets/avatar/avatar_Phoenix0415.jpg" alt="Reviewer: Phoenix0415" />
<br><b>Phoenix0415</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/SamJin98">
<img class="profile-img" src="../assets/avatar/avatar_SamJin98.jpg" alt="Reviewer: SamJin98" />
<br><b>SamJin98</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/yanedie">
<img class="profile-img" src="../assets/avatar/avatar_yanedie.jpg" alt="Reviewer: yanedie" />
<br><b>yanedie</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/RafaelCaso">
<img class="profile-img" src="../assets/avatar/avatar_RafaelCaso.jpg" alt="Reviewer: RafaelCaso" />
<br><b>RafaelCaso</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/pengchzn">
<img class="profile-img" src="../assets/avatar/avatar_pengchzn.jpg" alt="Reviewer: pengchzn" />
<br><b>pengchzn</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/thomasq0">
<img class="profile-img" src="../assets/avatar/avatar_thomasq0.jpg" alt="Reviewer: thomasq0" />
<br><b>thomasq0</b>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/magentaqin">
<img class="profile-img" src="../assets/avatar/avatar_magentaqin.jpg" alt="Reviewer: magentaqin" />
<br><b>magentaqin</b>
</a>
</div>
</div>
</div>
<!-- contributors -->
<div style="margin: 2em auto;">
<h3>Contributors</h3>
@@ -439,4 +406,4 @@
</a>
</div>
</div>
</section>
</section>