feat: Revised the book (#978)

* Sync recent changes to the revised Word.

* Revised the preface chapter

* Revised the introduction chapter

* Revised the computation complexity chapter

* Revised the chapter data structure

* Revised the chapter array and linked list

* Revised the chapter stack and queue

* Revised the chapter hashing

* Revised the chapter tree

* Revised the chapter heap

* Revised the chapter graph

* Revised the chapter searching

* Reivised the sorting chapter

* Revised the divide and conquer chapter

* Revised the chapter backtacking

* Revised the DP chapter

* Revised the greedy chapter

* Revised the appendix chapter

* Revised the preface chapter doubly

* Revised the figures
This commit is contained in:
Yudong Jin
2023-12-02 06:21:34 +08:00
committed by GitHub
parent b824d149cb
commit e720aa2d24
404 changed files with 1537 additions and 1558 deletions
@@ -24,9 +24,9 @@ fn binary_search(nums: &[i32], target: i32) -> i32 {
return -1;
}
/* 二分查找(左闭右开) */
/* 二分查找(左闭右开区间 */
fn binary_search_lcro(nums: &[i32], target: i32) -> i32 {
// 初始化左闭右开 [0, n) ,即 i, j 分别指向数组首元素、尾元素+1
// 初始化左闭右开区间 [0, n) ,即 i, j 分别指向数组首元素、尾元素+1
let mut i = 0;
let mut j = nums.len() as i32;
// 循环,当搜索区间为空时跳出(当 i = j 时为空)
@@ -53,7 +53,7 @@ pub fn main() {
let mut index = binary_search(&nums, target);
println!("目标元素 6 的索引 = {index}");
// 二分查找(左闭右开)
// 二分查找(左闭右开区间
index = binary_search_lcro(&nums, target);
println!("目标元素 6 的索引 = {index}");
}
+3 -3
View File
@@ -11,7 +11,7 @@ use std::collections::HashMap;
/* 方法一:暴力枚举 */
pub fn two_sum_brute_force(nums: &Vec<i32>, target: i32) -> Option<Vec<i32>> {
let size = nums.len();
// 两层循环,时间复杂度 O(n^2)
// 两层循环,时间复杂度 O(n^2)
for i in 0..size - 1 {
for j in i + 1..size {
if nums[i] + nums[j] == target {
@@ -24,9 +24,9 @@ pub fn two_sum_brute_force(nums: &Vec<i32>, target: i32) -> Option<Vec<i32>> {
/* 方法二:辅助哈希表 */
pub fn two_sum_hash_table(nums: &Vec<i32>, target: i32) -> Option<Vec<i32>> {
// 辅助哈希表,空间复杂度 O(n)
// 辅助哈希表,空间复杂度 O(n)
let mut dic = HashMap::new();
// 单层循环,时间复杂度 O(n)
// 单层循环,时间复杂度 O(n)
for (i, num) in nums.iter().enumerate() {
match dic.get(&(target - num)) {
Some(v) => return Some(vec![*v as i32, i as i32]),