简单题清单

一句话说明

简单题的价值不是“简单”,而是帮你把最常见的 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题解