From 4556e0971c54e1ceebb0a07febe48b1bf271ac37 Mon Sep 17 00:00:00 2001 From: krahets Date: Mon, 22 Jan 2024 19:05:40 +0800 Subject: [PATCH] build --- .../iteration_and_recursion.md | 2 +- docs-en/index.md | 3 +- .../iteration_and_recursion.md | 2 +- docs/index.md | 455 +++++++++++++----- overrides/stylesheets/extra.css | 180 +++++++ 5 files changed, 510 insertions(+), 132 deletions(-) diff --git a/docs-en/chapter_computational_complexity/iteration_and_recursion.md b/docs-en/chapter_computational_complexity/iteration_and_recursion.md index 783d94ad1..d0005a962 100644 --- a/docs-en/chapter_computational_complexity/iteration_and_recursion.md +++ b/docs-en/chapter_computational_complexity/iteration_and_recursion.md @@ -461,7 +461,7 @@ For example, in the following code, the condition variable $i$ is updated twice int WhileLoopII(int n) { int res = 0; int i = 1; // 初始化条件变量 - // 循环求和 1, 2, 4, 5... + // 循环求和 1, 4, 10, ... while (i <= n) { res += i; // 更新条件变量 diff --git a/docs-en/index.md b/docs-en/index.md index 4471c10af..7a5324b49 100644 --- a/docs-en/index.md +++ b/docs-en/index.md @@ -108,8 +108,7 @@ hide:
-

"Chase the wind and moon, never stopping"

-

"Beyond the plains, there are spring mountains"

+

"Knowledge increases by sharing."

--- diff --git a/docs/chapter_computational_complexity/iteration_and_recursion.md b/docs/chapter_computational_complexity/iteration_and_recursion.md index 98a3f369c..dd7dea4c3 100644 --- a/docs/chapter_computational_complexity/iteration_and_recursion.md +++ b/docs/chapter_computational_complexity/iteration_and_recursion.md @@ -461,7 +461,7 @@ comments: true int WhileLoopII(int n) { int res = 0; int i = 1; // 初始化条件变量 - // 循环求和 1, 2, 4, 5... + // 循环求和 1, 4, 10, ... while (i <= n) { res += i; // 更新条件变量 diff --git a/docs/index.md b/docs/index.md index a23e0c057..d1e6b03ac 100644 --- a/docs/index.md +++ b/docs/index.md @@ -5,152 +5,351 @@ hide: - footer - toc - edit + - navigation --- -
- -
+ +
+ + -

《 Hello 算法 》

- -

动画图解、一键运行的数据结构与算法教程

- -

- - GitHub repo stars - -   - - GitHub all releases - -   - - GitHub contributors - -

- -

- - - 开始阅读 - - - - 下载代码 - - - - 下载 PDF - -

- - - -
-
-

Quote

-

“一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。”

-

—— 邓俊辉,清华大学计算机系教授

-
-
-

Quote

-

“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!”

-

—— 李沐,亚马逊资深首席科学家

+ +
+ hello-algo-typing-svg +

+ 动画图解、一键运行的数据结构与算法教程 +

+ + +
+ + + +
-
---- + + +
-
-
-
-

动画图解

- + +
+
+
+ +
+
+ + + + + + + + + + + +
-

内容清晰易懂
学习曲线平滑

+

500 幅动画图解、12 种编程语言代码、2000 条社区问答,助你快速入门数据结构与算法

- -
- -
-

"A picture is worth a thousand words."

-

“一图胜千言”

-
+ -
- -
-
-

一键运行

- + +
+
+
+ + + + + + +
-

十余种编程语言
代码可直接运行

+

提供网页版和 PDF 版,兼容 PC、平板或手机,随时随地阅读

-
+ -
-

"Talk is cheap. Show me the code."

-

“少吹牛,看代码”

-
- -
-
-
-

互助学习

- + +
+
+

推荐语

+
+
+

“一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。”

+

—— 邓俊辉,清华大学计算机系教授

+
+
+

“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!”

+

—— 李沐,亚马逊资深首席科学家

+
-

欢迎讨论与提问
读者间携手共进

- -
- -
-

"Knowledge increases by sharing."

-

“知识在分享中得以增长”

-
- ---- - -

- -两年前,我在力扣上分享了“剑指 Offer”系列题解,受到了许多同学的喜爱和支持。在与读者交流期间,我最常收到的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 - -两眼一抹黑地刷题似乎是最受欢迎的方法,简单直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力强的同学能够顺利将地雷逐个排掉,而基础不足的同学很可能被炸得满头是包,并在挫折中步步退缩。通读教材也是一种常见做法,但对于面向求职的同学来说,毕业季、投递简历、准备笔试面试已经消耗了大部分精力,啃厚重的书往往变成了一项艰巨的挑战。 - -如果你也面临类似的困扰,那么很幸运这本书找到了你。本书是我对这个问题给出的答案,即使不是最优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 - -我深深赞同费曼教授所言:“Knowledge isn't free. You have to pay attention.”从这个意义上看,这本书并非完全“免费”。为了不辜负你为本书所付出的宝贵“注意力”,我会尽我所能,投入最大的“注意力”来完成这本书的创作。 + -

作者

- -靳宇栋 ([Krahets](https://leetcode.cn/u/jyd/)),大厂高级算法工程师,上海交通大学硕士。力扣(LeetCode)全网阅读量最高博主,发表的[《图解算法数据结构》](https://leetcode.cn/leetbook/detail/illustration-of-algorithm/)已被订阅 30 万本。 + +
+
+
+
+
+
+ + + +

动画图解

+
+

内容清晰易懂,学习曲线平滑

+

"A picture is worth a thousand words."
“一图胜千言”

+
+
+ +
---- +
+ +
+
+
+ + + +

一键运行

+
+

十余种编程语言,代码可视化运行

+

"Talk is cheap. Show me the code."
“少吹牛,看代码”

+
+
+
-

贡献

+
+
+
+
+ + + +

互助学习

+
+

欢迎讨论与提问,读者间携手共进

+

"Knowledge increases by sharing."
“知识在分享中得以增长”

+
+
+ +
-本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序排列): +
+
-

- - - -

+ +
+
+ +
+

作者

+ +
-本书的代码审阅工作由 codingonion、Gonglja、gvenusleo、hpstory、justin-tse、krahets、night-cruise、nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代码的规范与统一。 + + -
- - - - - - - - - - - - -
codingonion
codingonion

Rust, Zig
Gonglja
Gonglja

C, C++
gvenusleo
gvenusleo

Dart
hpstory
hpstory

C#
justin-tse
justin-tse

JS, TS
krahets
krahets

Java, Python
night-cruise
night-cruise

Rust
nuomi1
nuomi1

Swift
Reanon
Reanon

Go, C
-
+ +
+

贡献者

+

本书在开源社区 130 多位贡献者的共同努力下不断完善,感谢他们付出的时间与精力!

+ + + +
+
+
\ No newline at end of file diff --git a/overrides/stylesheets/extra.css b/overrides/stylesheets/extra.css index 332bf26bb..adaa54446 100644 --- a/overrides/stylesheets/extra.css +++ b/overrides/stylesheets/extra.css @@ -216,3 +216,183 @@ body { transform-origin: top left; border: none; } + +/* landing page container */ +.home-div { + width: 100%; + height: auto; + display: flex; + justify-content: center; + align-items: center; + background-color: var(--md-default-bg-color); + color: var(--md-default-fg-color); + font-size: 0.9rem; + padding: 2em; + text-align: center; +} + +.section-content { + width: 100%; + height: auto; + max-width: 70vw; +} + +.hero-btn { + margin: 0 0.1em; + padding: 0.5em 1.3em; + font-size: 0.85em; +} + +/* hero image */ +.hero-image-div { + height: min(84vh, 75vw); + width: min(112vh, 100vw); + margin: 0 auto; + margin-top: -2.4rem; + padding: 0; + position: relative; + color: white; + font-size: min(2vh, 2.5vw); + font-weight: 500; +} + +.hero-bg { + height: 100%; + width: 100%; + object-fit: cover; + position: absolute; +} + +/* hover on the planets */ +.hero-on-hover { + width: auto; + position: absolute; + transition: transform 0.3s ease-in-out, filter 0.3s ease-in-out; +} + +.hero-caption { + margin: 0; + position: absolute; + transform: translateX(-50%) translateY(-50%); +} + +a:hover .hero-on-hover { + filter: brightness(1.2) saturate(1.1); + transform: scale(1.03); +} + +a:hover .hero-caption { + color: var(--md-typeset-btn-color); +} + +/* device */ +.device-on-hover { + width: auto; + position: absolute; + transition: transform 0.3s ease-in-out; +} + +.device-on-hover:hover { + transform: scale(1.03); +} + +/* brief intro */ +.intro-container { + display: flex; + align-items: center; + margin: 2em auto; +} + +.intro-image { + flex-shrink: 0; + flex-grow: 0; + width: 55%; + border-radius: 0.5em; + box-shadow: var(--md-shadow-z2); +} + +.intro-text { + flex-grow: 1; /* 允许元素填充剩余空间 */ + display: flex; + flex-direction: column; + justify-content: center; + text-align: left; + align-items: flex-start; + width: fit-content; + margin: 2em; +} + +.intro-text > div { + align-self: flex-start; + width: auto; + margin: 0 auto; +} + +.intro-quote { + color: var(--md-accent-fg-color); + font-weight: bold; +} + +/* contributors table */ +.profile-div { + display: flex; + flex-wrap: wrap; /* 当空间不足时换行 */ + justify-content: center; /* 居中对齐子元素 */ + max-width: 1080px; /* 或其他最大宽度 */ + margin: 1em auto; +} + +.profile-cell { + flex: 1; /* 每个单元格均分空间 */ + flex-basis: 15%; + margin: 1em 0.5em; /* 为了清晰间隔,可以根据需要调整 */ + text-align: center; /* 文本居中 */ +} + +.profile-img { + width: 5em; + border-radius: 50%; + margin-bottom: 0.2em; +} + +.contrib-image { + width: 45%; +} + +/* Hide table of contents */ +@media screen and (max-width: 60em) { + .home-div { + font-size: 0.75rem; + } +} + +/* Hide navigation */ +@media screen and (max-width: 76.25em) { + .section-content { + max-width: 95vw; + } + + .intro-container { + flex-direction: column; /* 竖向布局 */ + } + + .intro-text { + width: auto; + order: 2; + margin: 0 auto; + } + + .intro-image { + width: 100%; /* 占满屏幕宽度 */ + order: 1; + margin-bottom: 1em; + } + + .contrib-image { + width: 100%; + } + + .profile-cell { + flex-basis: 25%; + } +}