mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-01 17:53:18 +08:00
Remove the markdown mark.
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Поиск с возвратом
|
||||
|
||||

|
||||
@@ -8,4 +7,3 @@
|
||||
Мы как исследователи в лабиринте, на пути вперед можем встретить трудности.
|
||||
|
||||
Сила возврата позволяет нам начать заново, постоянно пробовать и в конечном итоге найти выход к свету.
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Задача о n ферзях
|
||||
|
||||
!!! question
|
||||
@@ -52,4 +51,3 @@
|
||||
Расстановка по строкам выполняется $n$ раз, с учетом ограничения по столбцам от первой строки до последней строки имеется $n$, $n-1$, $\dots$, $2$, $1$ вариантов выбора, что требует $O(n!)$ времени. При записи решения необходимо скопировать матрицу `state` и добавить ее в `res`, операция копирования занимает $O(n^2)$ времени. Таким образом, **общая временная сложность составляет $O(n! \cdot n^2)$**. На самом деле, обрезка по диагональным ограничениям также может значительно сократить пространство поиска, поэтому эффективность поиска часто лучше указанной временной сложности.
|
||||
|
||||
Массив `state` использует $O(n^2)$ пространства, массивы `cols`, `diags1` и `diags2` используют по $O(n)$ пространства. Максимальная глубина рекурсии равна $n$, используя $O(n)$ пространства стека. Таким образом, **пространственная сложность составляет $O(n^2)$**.
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Резюме
|
||||
|
||||
### Ключевые моменты
|
||||
@@ -22,4 +21,3 @@
|
||||
|
||||
- Алгоритм поиска с возвратом обычно реализуется на основе рекурсии. Однако поиск с возвратом -- это одна из областей применения рекурсии, это применение рекурсии в задачах поиска.
|
||||
- Структура рекурсии отражает парадигму решения задач «декомпозиция подзадач», часто используется для решения задач методом «разделяй и властвуй», поиска с возвратом, динамического программирования (рекурсия с мемоизацией) и других задач.
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Кодирование символов *
|
||||
|
||||
В компьютере все данные хранятся в виде двоичных чисел, и символы `char` не являются исключением. Для представления символов необходимо создать «набор символов», определяющий взаимно однозначное соответствие между каждым символом и двоичным числом. Имея набор символов, компьютер может выполнять преобразование двоичных чисел в символы путем поиска в таблице.
|
||||
@@ -60,4 +59,3 @@ Unicode является универсальным набором символ
|
||||
- **Кодирование UTF-32**: каждый символ использует 4 байта. Это означает, что UTF-32 занимает больше места, чем UTF-8 и UTF-16, особенно для текстов с высокой долей символов ASCII.
|
||||
|
||||
С точки зрения занимаемого пространства хранения использование UTF-8 для представления английских символов очень эффективно, поскольку требуется только 1 байт;
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Хеш-таблицы
|
||||
|
||||

|
||||
@@ -8,5 +7,3 @@
|
||||
*Хеш-таблица* реализует эффективный поиск элементов через установление соответствия между ключом key и значением value. Более конкретно, передав ключ в хеш-таблицу, можно получить соответствующее значение за время *O*(1).
|
||||
|
||||
Пусть имеется *n* студентов, у каждого из которых есть имя и номер. Если нужно реализовать функцию «ввести номер студента и получить соответствующее имя», то можно использовать хеш-таблицу, как показано на рис. 6.1.
|
||||
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
---
|
||||
comments: true
|
||||
icon: material/book-open-page-variant
|
||||
@@ -96,4 +95,3 @@ status: new
|
||||
|
||||
<!-- 🔴 俄文版缺失此段落 -->
|
||||
<!-- 中文原文:希望这本书能够帮助到你! -->
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
---
|
||||
icon: material/bookshelf
|
||||
---
|
||||
@@ -24,4 +23,3 @@ icon: material/bookshelf
|
||||
[9] Gayle Laakmann McDowell. Cracking the Coding Interview: 189 Programming Questions and Solutions (6th Edition).
|
||||
|
||||
[10] Aston Zhang, et al. Dive into Deep Learning.
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Сортировка корзинами
|
||||
|
||||
Несколько предыдущих алгоритмов сортировки относятся к "алгоритмам сортировки на основе сравнения", которые реализуют сортировку путем сравнения размеров элементов. Временная сложность таких алгоритмов сортировки не может превысить $O(n \log n)$. Далее мы рассмотрим несколько "алгоритмов сортировки не на основе сравнения", временная сложность которых может достигать линейного порядка.
|
||||
@@ -44,4 +43,3 @@
|
||||
Как показано на рисунке ниже, мы предполагаем, что цены товаров подчиняются нормальному распределению, что позволяет разумно установить ценовые интервалы и таким образом равномерно распределить товары по корзинам.
|
||||
|
||||

|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Стек и очередь
|
||||
|
||||

|
||||
@@ -8,4 +7,3 @@
|
||||
Стек можно сравнить со стопкой котиков, а очередь — с котиками, стоящими в очереди.
|
||||
|
||||
Они представляют логику «первый вошел — последний вышел» и «первый пришел — первый вышел» соответственно.
|
||||
```
|
||||
@@ -1,4 +1,3 @@
|
||||
```markdown
|
||||
# Деревья
|
||||
|
||||

|
||||
@@ -6,5 +5,3 @@
|
||||
!!! abstract
|
||||
|
||||
Двоичное (бинарное) дерево -- это нелинейная структура данных, представляющая отношения между предками и потомками и отражающая логику «разделяй и властвуй».
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user