Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
6701af4f89 | |||
790d84ddda | |||
caae2794c0 |
@ -1,22 +1,93 @@
|
||||
# go_solutions
|
||||
# LeetCode Go刷题仓库
|
||||
|
||||
这个文件夹里面的内容用于存放 go 语言相关的代码,是一个独立的文件夹
|
||||
此仓库包含了一些经典的 LeetCode 算法题目,按照题目类型分类,并使用 Go 语言实现。每个题目单独一个文件,按照难度和类型进行组织。以下是各个目录的功能和题型说明。
|
||||
|
||||
## 目录
|
||||
|
||||
- [go_solutions]
|
||||
- [目录](#目录)
|
||||
- [介绍](#介绍)
|
||||
- [目录结构](#目录结构)
|
||||
|
||||
## 介绍
|
||||
|
||||
这个文件夹里面的所有内容都是 go 语言的算法实现。
|
||||
---
|
||||
|
||||
## 目录结构
|
||||
|
||||
- `sort/`: 排序算法相关目录
|
||||
- `leetcode/`: 力扣题解目录,按难度分类
|
||||
- `easy/`: 简单难度题目
|
||||
- `medium/`: 中等难度题目
|
||||
- `hard/`: 困难难度题目
|
||||
### `/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 提供的题目描述进行编写,部分文件可能包含额外的注释帮助理解思路。
|
||||
- 有一些题目可能会在代码中做了优化或改进,特别是时间复杂度或空间复杂度方面。
|
||||
|
||||
---
|
||||
|
||||
希望这些题目能帮助你提升解题能力和编程技能!如果有任何问题或者建议,欢迎联系我。
|
||||
|
30
go_solutions/leetcode-go/array/easy_two_sum.go
Normal file
30
go_solutions/leetcode-go/array/easy_two_sum.go
Normal file
@ -0,0 +1,30 @@
|
||||
package main
|
||||
|
||||
/*
|
||||
使用哈希表
|
||||
*/
|
||||
func twoSum(nums []int, target int) []int {
|
||||
hashTable := map[int]int{}
|
||||
for i, x := range nums {
|
||||
if val, ok := hashTable[target-x]; ok {
|
||||
return []int{val, i}
|
||||
}
|
||||
hashTable[x] = i
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
/*
|
||||
暴力枚举,首先遍历整个数组,之后再遍历后边的所有元素,如果两个元素相加的值为target,就返回这两个
|
||||
下标
|
||||
*/
|
||||
func f1(nums []int, target int) []int {
|
||||
for i, x := range nums {
|
||||
for j := i + 1; j < len(nums); j++ {
|
||||
if x+nums[j] == target {
|
||||
return []int{i, j}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
0
go_solutions/leetcode-go/graph/.gitkeep
Normal file
0
go_solutions/leetcode-go/graph/.gitkeep
Normal file
0
go_solutions/leetcode-go/greedy/.gitkeep
Normal file
0
go_solutions/leetcode-go/greedy/.gitkeep
Normal file
0
go_solutions/leetcode-go/heap/.gitkeep
Normal file
0
go_solutions/leetcode-go/heap/.gitkeep
Normal file
0
go_solutions/leetcode-go/linkedlist/.gitkeep
Normal file
0
go_solutions/leetcode-go/linkedlist/.gitkeep
Normal file
0
go_solutions/leetcode-go/stack/.gitkeep
Normal file
0
go_solutions/leetcode-go/stack/.gitkeep
Normal file
0
go_solutions/leetcode-go/string/.gitkeep
Normal file
0
go_solutions/leetcode-go/string/.gitkeep
Normal file
0
go_solutions/leetcode-go/tree/.gitkeep
Normal file
0
go_solutions/leetcode-go/tree/.gitkeep
Normal file
Loading…
x
Reference in New Issue
Block a user