04_滑动窗口 滑动窗口滑动窗口通用模板# 通用框架 l = 0 ans = 0 # 或其他初始化 for r in range(n): # 1. 将 arr[r] 加入窗口(扩展右边界) # ... # 2. 窗口不满足条件时,收缩左边界 while 不满足条件: # 移除 arr[l] # ... l += 1 # 2026-10-05 算法学习 > 02_核心算法
48. 旋转图像 48. 旋转图像题目链接(中等) 题目描述给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像 顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 数据范围: n == matrix.length == matrix[i].length 1 <= n <= 20 -1000 <= mat 2026-10-05 刷题笔记 > Hot100 #数组 #矩阵 #原地算法
05_字符串 字符串基本操作s = "hello" lst = list(s) # 字符串转列表 # 大小写转换 s.upper() # 转大写 s.lower() # 转小写 s.capitalize() # 首字母大写 s.swapcase() # 大小写互换 # 去除空白 s.strip() 2026-09-19 算法学习 > 01_数据结构
49. 字母异位词分组 49. 字母异位词分组题目链接(中等) 题目描述给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。 数据范围: 1 <= strs.length <= 10^4 0 <= strs[i].length <= 100 strs[i] 仅包含小写字母 示例 2026-10-05 刷题笔记 > Hot100 #排序 #哈希表 #字符串
未命名 例题例题 1:Counting Haybales来源:USACO - Haybales 给定 N 个不同位置的干草捆,有 Q 次查询,每次查询区间 [A, B] 内有多少个干草捆。 N, Q ≤ 100,000 坐标范围:0 ~ 1,000,000,000 思路: 先将所有干草捆位置排序 对于每次查询 [A, B]: <= B 的个数:upper_bound(B) <= A-1 2026-10-05 算法学习 > 02_核心算法
46. 全排列 46. 全排列 题目链接(中等) 题目描述 给定一个不含重复数字的数组 nums,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。 数据范围: 1 <= nums.length <= 6 -10 <= nums[i] <= 10 nums 中的所有整数 互不相同 示例 示例 1: 输入: nums = [1,2,3] 输出: [[1,2,3],[1,3,2],[ 2026-10-05 刷题笔记 > Hot100 > 回溯 #数组 #回溯
递归与回溯 递归与回溯 一、递归 1. 什么是递归 递归就是函数自己调用自己。把一个大的问题拆成规模更小的同类问题,直到问题小到可以直接解决为止。 一个递归函数必须包含两部分: 终止条件(base case):什么时候不再递归,直接返回结果; 递归关系(recurrence):如何把当前问题转化为规模更小的同类问题。 def factorial(n): if n == 0: # 2026-10-05 算法学习 > 02_核心算法 #DFS #递归 #回溯
39. 组合总和 39. 组合总和 题目链接(中等) 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整t数 target,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入 2026-10-05 刷题笔记 > Hot100 > 回溯 #数组 #回溯
刷题笔记总览 刷题笔记总览 刷题笔记快速导航页,按来源分四大板块,链接直达题解。 板块 定位 数量 Hot100 LeetCode Hot 100,按考点分组 22 题 Leetcode 零散 LeetCode 题目 1 题 华为机考 牛客 HJ 系列 + LeetCode 高频 + 题型指南 21 题 小红书 笔试真题(按日期)+ 练习题 10 题 系统学习看 算法学习/(数据 2026-09-19 刷题笔记 #索引