This commit is contained in:
krahets 2023-03-01 22:22:02 +08:00
parent c3846a9cd1
commit f919a24e58
4 changed files with 81 additions and 11 deletions

View file

@ -36,7 +36,7 @@ comments: true
## 12.2.3.   Docker 部署
你可以使用 Docker 来部署本项目。
你可以使用 Docker 来部署本项目。稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。
```shell
git clone https://github.com/krahets/hello-algo.git
@ -44,8 +44,6 @@ cd hello-algo
docker-compose up -d
```
稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。
使用以下命令即可删除部署。
```shell

View file

@ -98,7 +98,7 @@ $$
| 指数位 E | 分数位 $\mathrm{N} = 0$ | 分数位 $\mathrm{N} \ne 0$ | 计算公式 |
| ------------------ | ----------------------- | ---------------------------- | ------------------------------------------------------------ |
| $0$ | $\pm 0$ | 次正规数subnormal number | $(-1)^{\mathrm{S}} \times 2^{-126} \times (0.\mathrm{N})$ |
| $0$ | $\pm 0$ | 次正规数 | $(-1)^{\mathrm{S}} \times 2^{-126} \times (0.\mathrm{N})$ |
| $1, 2, \dots, 254$ | 正规数 | 正规数 | $(-1)^{\mathrm{S}} \times 2^{(\mathrm{E} -127)} \times (1.\mathrm{N})$ |
| $255$ | $\pm \infty$ | $\mathrm{NaN}$ | |

View file

@ -41,9 +41,9 @@ comments: true
本书的成书过程中,我获得了许多人的帮助,包括但不限于:
- 感谢我的导师李博,在小酌畅谈时您告诉我“觉得应该做就去做”,坚定了我写这本书的决心。
- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角为本书的写作提出了许多建议,使这本书更加适合算法初学者来阅读。
- 感谢腾宝、琦宝、飞宝为本书起了个响当当的名字,好听又有梗,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。
- 感谢苏潼为本书设计了封面和 LOGO 我有些强迫症,前后多次修改,谢谢你的耐心。
- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角提出了许多建议,使这本书更加适合初学者来阅读。
- 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。
- 感谢苏潼为本书设计了封面和 LOGO 在我的强迫症下前后多次帮忙修改,谢谢你的耐心。
- 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 [Material-for-MkDocs](https://github.com/squidfunk/mkdocs-material/tree/master) 。
本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》很大影响,也在此向各位同学强烈推荐这本著作,包括[中文版](https://github.com/d2l-ai/d2l-zh)、[英文版](https://github.com/d2l-ai/d2l-en)、[李沐老师 bilibili 主页](https://space.bilibili.com/1567748478)。

View file

@ -565,9 +565,81 @@ comments: true
=== "Go"
```go title="linkedlist_deque.go"
[class]{ListNode}-[func]{}
/* 基于双向链表实现的双向队列 */
type linkedListDeque struct {
// 使用内置包 list
data *list.List
}
[class]{LinkedListDeque}-[func]{}
/* 初始化双端队列 */
func newLinkedListDeque() *linkedListDeque {
return &linkedListDeque{
data: list.New(),
}
}
/* 队首元素入队 */
func (s *linkedListDeque) pushFirst(value any) {
s.data.PushFront(value)
}
/* 队尾元素入队 */
func (s *linkedListDeque) pushLast(value any) {
s.data.PushBack(value)
}
/* 队首元素出队 */
func (s *linkedListDeque) pollFirst() any {
if s.isEmpty() {
return nil
}
e := s.data.Front()
s.data.Remove(e)
return e.Value
}
/* 队尾元素出队 */
func (s *linkedListDeque) pollLast() any {
if s.isEmpty() {
return nil
}
e := s.data.Back()
s.data.Remove(e)
return e.Value
}
/* 访问队首元素 */
func (s *linkedListDeque) peekFirst() any {
if s.isEmpty() {
return nil
}
e := s.data.Front()
return e.Value
}
/* 访问队尾元素 */
func (s *linkedListDeque) peekLast() any {
if s.isEmpty() {
return nil
}
e := s.data.Back()
return e.Value
}
/* 获取队列的长度 */
func (s *linkedListDeque) size() int {
return s.data.Len()
}
/* 判断队列是否为空 */
func (s *linkedListDeque) isEmpty() bool {
return s.data.Len() == 0
}
/* 获取 List 用于打印 */
func (s *linkedListDeque) toList() *list.List {
return s.data
}
```
=== "JavaScript"