fix(ru): align proofreading corrections with the Simplified Chinese original (#2004)

* docs(ru): correct proofreading issues in prose and code examples

* docs(ru): align proofreading edits with Simplified Chinese source

* fix(ru): repair generated Zig statements and complete comment translations
This commit is contained in:
Yudong Jin
2026-10-27 18:19:11 +08:00
committed by GitHub
parent 350f483801
commit 71a773df64
149 changed files with 675 additions and 649 deletions

View File

@@ -6,8 +6,8 @@ Author: timi (xisunyy@163.com)
def binary_search(nums: list[int], target: int) -> int:
"""Бинарный поиск (двусторонне замкнутый интервал)"""
# Инициализировать двусторонне замкнутый интервал [0, n-1], то есть i и j указывают на первый и последний элементы массива соответственно
"""Двоичный поиск (замкнутый интервал)"""
# Инициализировать замкнутый интервал [0, n-1], то есть i и j указывают на первый и последний элементы массива соответственно
i, j = 0, len(nums) - 1
# Цикл завершается, когда диапазон поиска пуст (при i > j диапазон пуст)
while i <= j:
@@ -23,8 +23,8 @@ def binary_search(nums: list[int], target: int) -> int:
def binary_search_lcro(nums: list[int], target: int) -> int:
"""Бинарный поиск (лево замкнутый, право открытый интервал)"""
# Инициализировать лево замкнутый, право открытый интервал [0, n), то есть i и j указывают на первый элемент массива и позицию сразу за последним элементом соответственно
"""Двоичный поиск (интервал, замкнутый слева и открытый справа)"""
# Инициализация интервала [0, n), замкнутого слева и открытого справа: i указывает на первый элемент массива, а j — на позицию сразу за последним
i, j = 0, len(nums)
# Цикл завершается, когда диапазон поиска пуст (при i = j диапазон пуст)
while i < j:
@@ -43,10 +43,10 @@ if __name__ == "__main__":
target = 6
nums = [1, 3, 6, 8, 12, 15, 23, 26, 31, 35]
# Бинарный поиск (двусторонне замкнутый интервал)
# Двоичный поиск (замкнутый интервал)
index = binary_search(nums, target)
print("Индекс целевого элемента 6 = ", index)
# Бинарный поиск (лево замкнутый, право открытый интервал)
# Двоичный поиск (интервал, замкнутый слева и открытый справа)
index = binary_search_lcro(nums, target)
print("Индекс целевого элемента 6 = ", index)

View File

@@ -12,18 +12,18 @@ from binary_search_insertion import binary_search_insertion
def binary_search_left_edge(nums: list[int], target: int) -> int:
"""Бинарный поиск самого левого target"""
"""Двоичный поиск самого левого элемента target"""
# Эквивалентно поиску точки вставки target
i = binary_search_insertion(nums, target)
# target не найден, вернуть -1
if i == len(nums) or nums[i] != target:
return -1
# Найти target и вернуть индекс i
# target найден, возвращается индекс i
return i
def binary_search_right_edge(nums: list[int], target: int) -> int:
"""Бинарный поиск самого правого target"""
"""Двоичный поиск самого правого элемента target"""
# Преобразовать задачу в поиск самого левого target + 1
i = binary_search_insertion(nums, target + 1)
# j указывает на самый правый target, а i — на первый элемент больше target
@@ -31,7 +31,7 @@ def binary_search_right_edge(nums: list[int], target: int) -> int:
# target не найден, вернуть -1
if j == -1 or nums[j] != target:
return -1
# Найти target и вернуть индекс j
# target найден, возвращается индекс j
return j
@@ -41,7 +41,7 @@ if __name__ == "__main__":
nums = [1, 3, 6, 6, 6, 6, 6, 10, 12, 15]
print(f"\nМассив nums = {nums}")
# Бинарный поиск левой и правой границы
# Двоичный поиск левой и правой границы
for target in [6, 7]:
index = binary_search_left_edge(nums, target)
print(f"Индекс самого левого элемента {target} равен {index}")

View File

@@ -6,8 +6,8 @@ Author: krahets (krahets@163.com)
def binary_search_insertion_simple(nums: list[int], target: int) -> int:
"""Бинарный поиск точки вставки (без повторяющихся элементов)"""
i, j = 0, len(nums) - 1 # Инициализировать двусторонне замкнутый интервал [0, n-1]
"""Двоичный поиск точки вставки (без повторяющихся элементов)"""
i, j = 0, len(nums) - 1 # Инициализировать замкнутый интервал [0, n-1]
while i <= j:
m = (i + j) // 2 # Вычислить индекс середины m
if nums[m] < target:
@@ -15,14 +15,14 @@ def binary_search_insertion_simple(nums: list[int], target: int) -> int:
elif nums[m] > target:
j = m - 1 # target находится в интервале [i, m-1]
else:
return m # Найти target и вернуть точку вставки m
return m # target найден, возвращается точка вставки m
# target не найден, вернуть точку вставки i
return i
def binary_search_insertion(nums: list[int], target: int) -> int:
"""Бинарный поиск точки вставки (с повторяющимися элементами)"""
i, j = 0, len(nums) - 1 # Инициализировать двусторонне замкнутый интервал [0, n-1]
"""Двоичный поиск точки вставки (с повторяющимися элементами)"""
i, j = 0, len(nums) - 1 # Инициализировать замкнутый интервал [0, n-1]
while i <= j:
m = (i + j) // 2 # Вычислить индекс середины m
if nums[m] < target:
@@ -40,7 +40,7 @@ if __name__ == "__main__":
# Массив без повторяющихся элементов
nums = [1, 3, 6, 8, 12, 15, 23, 26, 31, 35]
print(f"\nМассив nums = {nums}")
# Бинарный поиск точки вставки
# Двоичный поиск точки вставки
for target in [6, 9]:
index = binary_search_insertion_simple(nums, target)
print(f"Индекс позиции вставки элемента {target} равен {index}")
@@ -48,7 +48,7 @@ if __name__ == "__main__":
# Массив с повторяющимися элементами
nums = [1, 3, 6, 6, 6, 6, 6, 10, 12, 15]
print(f"\nМассив nums = {nums}")
# Бинарный поиск точки вставки
# Двоичный поиск точки вставки
for target in [2, 6, 20]:
index = binary_search_insertion(nums, target)
print(f"Индекс позиции вставки элемента {target} равен {index}")

View File

@@ -24,7 +24,7 @@ def linear_search_linkedlist(head: ListNode, target: int) -> ListNode | None:
"""Линейный поиск (связный список)"""
# Обойти связный список
while head:
if head.val == target: # Найти целевой узел и вернуть его
if head.val == target: # Целевой узел найден, возвращается этот узел
return head
head = head.next
return None # Целевой узел не найден, вернуть None