chore: 更改go实现的文件结构

This commit is contained in:
LouisFonda 2025-04-11 13:58:57 +08:00
parent caae2794c0
commit 790d84ddda
Signed by: yigencong
GPG Key ID: 29CE877CED00E966
15 changed files with 88 additions and 57 deletions

View File

@ -1,22 +1,93 @@
# go_solutions # LeetCode Go刷题仓库
这个文件夹里面的内容用于存放 go 语言相关的代码,是一个独立的文件夹 此仓库包含了一些经典的 LeetCode 算法题目,按照题目类型分类,并使用 Go 语言实现。每个题目单独一个文件,按照难度和类型进行组织。以下是各个目录的功能和题型说明。
## 目录 ---
- [go_solutions]
- [目录](#目录)
- [介绍](#介绍)
- [目录结构](#目录结构)
## 介绍
这个文件夹里面的所有内容都是 go 语言的算法实现。
## 目录结构 ## 目录结构
- `sort/`: 排序算法相关目录 ### `/array` - 数组相关题目
- `leetcode/`: 力扣题解目录,按难度分类
- `easy/`: 简单难度题目 此目录包含与数组操作相关的题目,常见的操作包括查找、排序、求和、滑动窗口等。
- `medium/`: 中等难度题目
- `hard/`: 困难难度题目 - **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 提供的题目描述进行编写,部分文件可能包含额外的注释帮助理解思路。
- 有一些题目可能会在代码中做了优化或改进,特别是时间复杂度或空间复杂度方面。
---
希望这些题目能帮助你提升解题能力和编程技能!如果有任何问题或者建议,欢迎联系我。

View File

@ -1,3 +0,0 @@
module git.icoding.fun/yigencong/algorithm/go_solutions
go 1.23.2

View File

View File

View File

View File

View File

View File

View File

@ -1,14 +0,0 @@
package main
import (
"fmt"
"git.icoding.fun/yigencong/algorithm/go_solutions/sort"
)
func main() {
arr := []int{64, 34, 25, 12, 22, 11, 90}
fmt.Println("原始数组:", arr)
sort.BubbleSort(arr)
fmt.Println("排序后数组:", arr)
}

View File

@ -1,17 +0,0 @@
package sort
import (
"git.icoding.fun/yigencong/algorithm/go_solutions/utils"
)
// BubbleSort 冒泡排序算法
func BubbleSort(arr []int) {
n := len(arr)
for i := 0; i < n-1; i++ {
for j := 0; j < n-i-1; j++ {
if arr[j] > arr[j+1] {
utils.Swap(&arr[j], &arr[j+1]) // 使用 Swap 函数交换元素
}
}
}
}

View File

@ -1,6 +0,0 @@
package utils
// 交换数组两个位置的元素
func Swap(a, b *int) {
*a, *b = *b, *a
}