<p align="center">
<a href="https://leetcode-cn.com/leetbook/detail/illustration-of-algorithm/">
<img src="https://pic.leetcode-cn.com/1599187248-gDiWnC-image.png" width="490">
</a>
</p>
<p align="center">
<img src="https://img.shields.io/badge/LeetCode%20tests-75%20accepted-brightgreen">
<img src="https://img.shields.io/badge/Language-Python-teal">
<img src="https://img.shields.io/badge/Language-Java-orange">
<img src="https://img.shields.io/badge/Language-C++-blue">
</p>
[《图解算法数据结构》](https://leetcode-cn.com/leetbook/detail/illustration-of-algorithm/)是一本面向算法初学者和互联网求职者编写的 LeetBook 手册。
- 图文详解 75 道题目,覆盖主要算法知识点。
- 题目活跃于各大互联网公司招聘中,可使笔面试准备事半功倍。
- 致力于行文深入浅出、图文搭配,提供简洁的 Python, Java, C++ 解题代码。
> [!NOTE]
>
> 本仓库包含“图解算法数据结构”、“Krahets 笔面试精选 88 题”和“剑指 Offer”的题解内容:
>
> ```python
> LeetCode-Book
> ├── leetbook_ioa # 《图解算法数据结构》题解和专栏文档
> ├── selected_coding_interview # 《Krahets 笔面试精选 88 题》题解文档
> └── sword_for_offer # 《剑指 Offer》题解文档、代码、刷题计划
> ```
>
> 若本 LeetBook 对您有所帮助,请在页面右上角点个 Star :star: 支持一下,谢谢!
## 如何学习算法
### 第一步:看入门书
<p align="center" href="https://github.com/krahets/hello-algo">
<img src="https://www.hello-algo.com/index.assets/hello_algo_header.png" width="550">
</p>
[《Hello 算法》](https://github.com/krahets/hello-algo):动画图解、一键运行的数据结构与算法教程。
这本书旨在引导初学者探索数据结构与算法的知识地图,掌握刷题需要的前置知识与工具库。
### 第二步:刷算法题
推荐以下 LeetCode 题单(前两项 [@Krahets](https://leetcode.cn/u/jyd/) 题解全覆盖):
1. [Krahets 笔面试精选 88 题](https://leetcode.cn/studyplan/selected-coding-interview/):从“剑指 Offer”和“热题 100”精选出的 88 道高频算法笔试题,适合初学者入门。
2. [图解算法数据结构](https://leetcode-cn.com/leetbook/detail/illustration-of-algorithm/)([Interview-75](https://leetcode.cn/studyplan/coding-interviews/)):题目更贴近实际应用,相较于“剑指 Offer”难度有所增加。
3. [LeetCode 热题 100](https://leetcode.cn/studyplan/top-100-liked/):力扣用户最喜爱的 100 道题。
4. [面试经典 150 题](https://leetcode.cn/studyplan/top-interview-150/):150 道经典面试力扣题。
5. [LeetCode-75](https://leetcode.cn/studyplan/leetcode-75/):精选面试必备的 75 道核心题目。
对初学者的刷题建议:
1. 建议每日刷 2~3 题。若能轻松完成,可以尝试增加至 5~8 题。
2. 刷题的质量远重要于数量。务必确保你真正理解了每个题目的解法及背后的算法原理。
3. 建议你按照目录顺序做题。如果感觉某题很难,可以先跳过,后续再攻克。
4. 题目通常有不止一种解法,请你注意比较和探讨各种方法的特点和适用情况。
5. 如果你发现自己遗忘了题目解法,不必灰心。艾宾浩斯遗忘曲线指出,通常需要复习至少三次,才能真正掌握一个知识点。
6. 行百里者半九十。坚持至关重要,加油,相信你可以做到!
## License
The texts, code, and images in this repository are licensed under [CC BY-NC-SA-4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/).
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
数据结构是计算机存储、组织数据的方式,它涉及到数据的逻辑结构、物理结构以及对数据的基本操作。数据结构的选择会影响到程序的效率、可读性和可维护性。常见的数据结构有数组、链表、栈、队列、树、图等。 算法则是解决特定问题的步骤,是对数据运算和操作的详细描述。算法的设计和选择会直接影响到程序的效率,因此,在设计和选择算法时,需要考虑到时间复杂度、空间复杂度等因素。 在实际应用中,数据结构和算法常常是密不可分的。通过对数据结构的理解和运用,以及对算法的学习和研究,可以帮助我们更有效地解决实际问题,提升编程能力。
资源推荐
资源详情
资源评论
收起资源包目录
《剑指 Offer》 Python, Java, C++ 解题代码,LeetBook《图解算法数据结构》配套代码仓.zip (279个子文件)
sfo_35_clone_a_linked_list_with_next_and_random_pointer_s2.cpp 3KB
sfo_35_clone_a_linked_list_with_next_and_random_pointer_s1.cpp 2KB
sfo_37_serialize_and_deserialize_a_binary_tree_s1.cpp 2KB
sfo_32iii_print_a_binary_tree_topbottom_iii_s1.cpp 2KB
sfo_36_binary_search_tree_and_doubly_linked_list_s1.cpp 2KB
sfo_19_regular_expression_matching_s2.cpp 2KB
sfo_07_reconstruct_binary_tree_s1.cpp 1KB
sfo_12_word_search_s1.cpp 1KB
sfo_29_print_a_given_matrix_in_spiral_form_s1.cpp 1KB
sfo_51_reversed_pairs_in_an_array_s1.cpp 1KB
sfo_32iii_print_a_binary_tree_topbottom_iii_s2.cpp 1KB
sfo_40_the_smallest_k_numbers_s1.cpp 1KB
sfo_45_arrange_an_array_into_the_smallest_number_s1.cpp 1KB
sfo_34_all_xsum_paths_in_a_binary_tree_s1.cpp 1KB
sfo_53i_find_a_number_in_a_sorted_array_s1.cpp 1KB
sfo_32ii_print_a_binary_tree_topbottom_ii_s1.cpp 1KB
sfo_40_the_smallest_k_numbers_s2.cpp 1KB
sfo_52_the_first_common_node_in_two_linked_lists_s1.cpp 1KB
sfo_41_find_median_from_data_stream_s1.cpp 1KB
sfo_27_mirror_of_a_binary_tree_s2.cpp 1KB
sfo_13_range_of_motion_of_a_robot_s2.cpp 1KB
sfo_19_regular_expression_matching_s1.cpp 1KB
sfo_38_all_permutations_of_a_string_s1.cpp 1KB
sfo_26_substructure_of_a_binary_tree_s1.cpp 1KB
sfo_55i_depth_of_a_binary_tree_s2.cpp 1KB
sfo_59ii_max_queue_s1.cpp 1KB
sfo_25_combine_two_sorted_linked_lists_s1.cpp 1KB
sfo_48_the_longest_substring_without_repeated_characters_s1.cpp 1KB
sfo_47_the_maximum_value_of_gifts_s1.cpp 1KB
sfo_13_range_of_motion_of_a_robot_s1.cpp 1KB
sfo_11_find_minimum_in_rotated_sorted_array_s2.cpp 1KB
sfo_05_replace_spaces_s1.cpp 1KB
sfo_32i_print_a_binary_tree_topbottom_i_s1.cpp 1KB
sfo_61_straight_in_poker_s1.cpp 1023B
sfo_09_implement_a_queue_using_two_stacks_s1.cpp 1023B
sfo_57ii_consecutive_numbers_with_sum_s_s2.cpp 1022B
sfo_24_reverse_a_linked_list_s2.cpp 993B
sfo_04_find_a_number_in_2d_matrix_s1.cpp 982B
sfo_57ii_consecutive_numbers_with_sum_s_s1.cpp 980B
sfo_56i_single_number_i_s1.cpp 979B
sfo_56ii_single_number_ii_s2.cpp 979B
sfo_33_postorder_traversal_of_a_binary_search_tree_s1.cpp 974B
sfo_28_symmetric_binary_tree_s1.cpp 968B
sfo_55ii_balanced_binary_tree_s1.cpp 959B
sfo_47_the_maximum_value_of_gifts_s2.cpp 955B
sfo_31_validate_stack_sequences_s1.cpp 949B
sfo_43_total_number_of_1_in_integers_from_1_to_n_s1.cpp 944B
sfo_33_postorder_traversal_of_a_binary_search_tree_s2.cpp 937B
sfo_22_the_kth_node_from_the_end_of_a_linked_list_s2.cpp 933B
sfo_48_the_longest_substring_without_repeated_characters_s3.cpp 932B
sfo_48_the_longest_substring_without_repeated_characters_s2.cpp 922B
sfo_55ii_balanced_binary_tree_s2.cpp 921B
sfo_54_the_kth_largest_node_of_a_binary_search_tree_s1.cpp 919B
sfo_61_straight_in_poker_s2.cpp 913B
sfo_24_reverse_a_linked_list_s1.cpp 913B
sfo_30_min_stack_s1.cpp 897B
sfo_53i_find_a_number_in_a_sorted_array_s2.cpp 896B
sfo_39_the_majority_element_in_an_array_s2.cpp 892B
sfo_18_delete_a_node_from_a_linked_list_s1.cpp 890B
sfo_14ii_cut_the_rope_ii_s1.cpp 872B
sfo_60_probabilities_for_rolling_n_dices_s1.cpp 859B
sfo_22_the_kth_node_from_the_end_of_a_linked_list_s1.cpp 854B
sfo_45_arrange_an_array_into_the_smallest_number_s2.cpp 853B
sfo_49_ugly_numbers_s1.cpp 852B
sfo_57_two_numbers_with_sum_s_s1.cpp 844B
sfo_50_find_the_first_nonrepeating_character_in_a_string_s2.cpp 842B
sfo_06_print_a_linked_list_in_reverse_order_s2.cpp 835B
sfo_11_find_minimum_in_rotated_sorted_array_s1.cpp 825B
sfo_27_mirror_of_a_binary_tree_s1.cpp 819B
sfo_03_find_duplicate_numbers_in_an_array_s2.cpp 815B
sfo_16_powers_of_integers_s1.cpp 798B
sfo_21_adjust_the_order_of_numbers_in_an_array_s1.cpp 797B
sfo_44_nth_digit_s1.cpp 792B
sfo_46_translate_numbers_into_strings_s1.cpp 787B
sfo_46_translate_numbers_into_strings_s2.cpp 787B
sfo_58ii_left_rotation_of_a_string_s2.cpp 780B
sfo_06_print_a_linked_list_in_reverse_order_s1.cpp 779B
sfo_46_translate_numbers_into_strings_s3.cpp 771B
sfo_42_largest_sum_contiguous_subarray_s1.cpp 761B
sfo_53ii_the_missing_number_from_0_to_n1_s1.cpp 732B
sfo_50_find_the_first_nonrepeating_character_in_a_string_s1.cpp 711B
sfo_39_the_majority_element_in_an_array_s1.cpp 708B
sfo_63_the_maximum_profit_of_stocks_s1.cpp 700B
sfo_55i_depth_of_a_binary_tree_s1.cpp 687B
sfo_03_find_duplicate_numbers_in_an_array_s1.cpp 687B
sfo_14i_cut_the_rope_i_s1.cpp 668B
sfo_56ii_single_number_ii_s1.cpp 663B
sfo_58ii_left_rotation_of_a_string_s3.cpp 655B
sfo_15_number_of_1_bits_s1.cpp 623B
sfo_10ii_frog_jump_s1.cpp 614B
sfo_10i_fibonacci_numbers_s1.cpp 613B
sfo_62_josephus_problem_s1.cpp 594B
sfo_15_number_of_1_bits_s2.cpp 584B
sfo_58ii_left_rotation_of_a_string_s1.cpp 571B
sfo_64_solve_1_2___n_s1.cpp 497B
.gitignore 37B
PrintUtil.hpp 4KB
TreeNode.hpp 1KB
ListNode.hpp 929B
include.hpp 378B
共 279 条
- 1
- 2
- 3
资源评论
极致人生-010
- 粉丝: 4379
- 资源: 3086
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功