mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-27 17:16:28 +08:00
build
This commit is contained in:
parent
c3846a9cd1
commit
f919a24e58
4 changed files with 81 additions and 11 deletions
|
@ -36,7 +36,7 @@ comments: true
|
||||||
|
|
||||||
## 12.2.3. Docker 部署
|
## 12.2.3. Docker 部署
|
||||||
|
|
||||||
你可以使用 Docker 来部署本项目。
|
你可以使用 Docker 来部署本项目。稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/krahets/hello-algo.git
|
git clone https://github.com/krahets/hello-algo.git
|
||||||
|
@ -44,8 +44,6 @@ cd hello-algo
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。
|
|
||||||
|
|
||||||
使用以下命令即可删除部署。
|
使用以下命令即可删除部署。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|
|
@ -98,9 +98,9 @@ $$
|
||||||
|
|
||||||
| 指数位 E | 分数位 $\mathrm{N} = 0$ | 分数位 $\mathrm{N} \ne 0$ | 计算公式 |
|
| 指数位 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})$ |
|
| $1, 2, \dots, 254$ | 正规数 | 正规数 | $(-1)^{\mathrm{S}} \times 2^{(\mathrm{E} -127)} \times (1.\mathrm{N})$ |
|
||||||
| $255$ | $\pm \infty$ | $\mathrm{NaN}$ | |
|
| $255$ | $\pm \infty$ | $\mathrm{NaN}$ | |
|
||||||
|
|
||||||
特别地,次正规数显著提升了小数精度:
|
特别地,次正规数显著提升了小数精度:
|
||||||
|
|
||||||
|
|
|
@ -41,9 +41,9 @@ comments: true
|
||||||
本书的成书过程中,我获得了许多人的帮助,包括但不限于:
|
本书的成书过程中,我获得了许多人的帮助,包括但不限于:
|
||||||
|
|
||||||
- 感谢我的导师李博,在小酌畅谈时您告诉我“觉得应该做就去做”,坚定了我写这本书的决心。
|
- 感谢我的导师李博,在小酌畅谈时您告诉我“觉得应该做就去做”,坚定了我写这本书的决心。
|
||||||
- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角为本书的写作提出了许多建议,使这本书更加适合算法初学者来阅读。
|
- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角提出了许多建议,使这本书更加适合初学者来阅读。
|
||||||
- 感谢腾宝、琦宝、飞宝为本书起了个响当当的名字,好听又有梗,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。
|
- 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。
|
||||||
- 感谢苏潼为本书设计了封面和 LOGO ,我有些强迫症,前后多次修改,谢谢你的耐心。
|
- 感谢苏潼为本书设计了封面和 LOGO ,在我的强迫症下前后多次帮忙修改,谢谢你的耐心。
|
||||||
- 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 [Material-for-MkDocs](https://github.com/squidfunk/mkdocs-material/tree/master) 。
|
- 感谢 @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)。
|
本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》很大影响,也在此向各位同学强烈推荐这本著作,包括[中文版](https://github.com/d2l-ai/d2l-zh)、[英文版](https://github.com/d2l-ai/d2l-en)、[李沐老师 bilibili 主页](https://space.bilibili.com/1567748478)。
|
||||||
|
|
|
@ -565,9 +565,81 @@ comments: true
|
||||||
=== "Go"
|
=== "Go"
|
||||||
|
|
||||||
```go title="linkedlist_deque.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"
|
=== "JavaScript"
|
||||||
|
|
Loading…
Reference in a new issue