简单题清单
一句话说明
简单题的价值不是“简单”,而是帮你把最常见的 Go 手法练到不需要犹豫。
建议优先练的能力
- 双指针
- 哈希表
- 链表基础操作
- 二叉树递归
- 栈和队列基础
典型题型
| 类型 | 代表题 | 核心手法 |
|---|---|---|
| 数组 | 两数之和、移动零 | 哈希、双指针 |
| 链表 | 反转链表 | 指针重连 |
| 树 | 最大深度、相同的树 | 递归 |
| 栈 | 有效的括号 | 栈匹配 |
一个代表性 Go 模板:移动零
func moveZeroes(nums []int) {
slow := 0
for fast := 0; fast < len(nums); fast++ {
if nums[fast] != 0 {
nums[slow], nums[fast] = nums[fast], nums[slow]
slow++
}
}
}一个代表性 Go 模板:有效括号
func isValid(s string) bool {
pairs := map[byte]byte{')': '(', ']': '[', '}': '{'}
stack := []byte{}
for i := 0; i < len(s); i++ {
ch := s[i]
if left, ok := pairs[ch]; ok {
if len(stack) == 0 || stack[len(stack)-1] != left {
return false
}
stack = stack[:len(stack)-1]
} else {
stack = append(stack, ch)
}
}
return len(stack) == 0
}刷题建议
- 简单题不要只追求 AC,要追求写得稳定
- 能用 Go 独立写出基础模板,才算真正吃透
- 做完后顺手总结“这题是哪个套路的最小版本”
返回:LeetCode题解