LeetCode Go刷题仓库
此仓库包含了一些经典的 LeetCode 算法题目,按照题目类型分类,并使用 Go 语言实现。每个题目单独一个文件,按照难度和类型进行组织。以下是各个目录的功能和题型说明。
目录结构
/array
- 数组相关题目
此目录包含与数组操作相关的题目,常见的操作包括查找、排序、求和、滑动窗口等。
- easy_two_sum.go:两数之和(简单)
- medium_max_subarray.go:最大子数组和(中等)
/linkedlist
- 链表相关题目
此目录包含与链表操作相关的题目,涉及链表的遍历、反转、合并等操作。
- easy_reverse_list.go:反转链表(简单)
/stack
- 栈相关题目
此目录包含与栈的应用相关的题目,栈是许多算法和数据结构中的基础,常用于括号匹配、单调栈等。
- medium_valid_parentheses.go:有效的括号(中等)
- hard_maximal_rectangle.go:最大矩形面积(困难)
/dynamic_programming
- 动态规划相关题目
此目录包含与动态规划相关的题目,动态规划常用于求最优解问题,例如最长子序列、背包问题等。
- medium_longest_subsequence.go:最长递增子序列(中等)
- hard_edit_distance.go:编辑距离(困难)
/graph
- 图相关题目
此目录包含与图的遍历和搜索相关的题目,常用的图算法包括深度优先搜索(DFS)、广度优先搜索(BFS)等。
- medium_course_schedule.go:课程表(中等)
- hard_word_ladder.go:单词接龙(困难)
/tree
- 树相关题目
此目录包含与树结构相关的题目,常见的树操作包括遍历、求深度、平衡二叉树等。
- easy_max_depth.go:二叉树的最大深度(简单)
- medium_level_order.go:二叉树的层次遍历(中等)
/string
- 字符串相关题目
此目录包含与字符串操作相关的题目,涉及字符串的匹配、变换、回文等问题。
- easy_valid_palindrome.go:回文字符串(简单)
- hard_longest_substring_without_repeating.go:无重复字符的最长子串(困难)
/backtracking
- 回溯算法相关题目
此目录包含与回溯算法相关的题目,回溯算法常用于组合、排列、子集生成等问题。
- medium_combination_sum.go:组合总和(中等)
- hard_n_queens.go:N 皇后问题(困难)
/greedy
- 贪心算法相关题目
此目录包含与贪心算法相关的题目,贪心算法用于找到问题的局部最优解,常用于最小化或最大化问题。
- medium_jump_game.go:跳跃游戏(中等)
- hard_split_array_largest_sum.go:分割数组的最大和(困难)
/heap
- 堆相关题目
此目录包含与堆相关的题目,堆常用于求解最大/最小值、Top K 问题等。
- medium_top_k_elements.go:前 K 个高频元素(中等)
使用说明
每个题目文件包含完整的解题代码和注释,直接运行文件可以查看解题过程和输出。你可以通过 go run <filename>
命令来运行某个题目的代码进行调试和测试。
其他说明
- 本仓库主要用于刷 LeetCode 题目,所有题目都是独立的 Go 文件,便于快速学习和调试。
- 每道题的解法根据 LeetCode 提供的题目描述进行编写,部分文件可能包含额外的注释帮助理解思路。
- 有一些题目可能会在代码中做了优化或改进,特别是时间复杂度或空间复杂度方面。
希望这些题目能帮助你提升解题能力和编程技能!如果有任何问题或者建议,欢迎联系我。