力扣hot100—回溯8题
全排列、子集、电话号码的字母组合、单词搜索、分割回文串、N皇后,大部分都是基于DFS递归搜索的思想
2025-10-19 20:24
|
|
2025-10-20 17:15
剑指offer67题-No66.机器人的运动范围
和NO65差不多,dfs即可。 #include <vector> using namespace std; class Solution { public: int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; int row; int col; int count; int t; int movi…
2025-6-19 14:57
|
|
2025-6-19 14:57
剑指offer67题-No65.矩阵中的路径
感觉类似BFS,可以参考acwing出现的题目:AcWing 844. 走迷宫 - AcWing 贴上上面这道题的BFS暴力模板: #include <iostream> #include <string> #include <queue> using namespace std; const int N = 105; int g…
2025-6-19 14:56
|
|
2025-6-19 14:56
剑指offer67题-No52.正则表达式匹配
字符串处理 没想到是动态规划题,感觉特别难 LCR 137. 模糊搜索验证 - 力扣(LeetCode) 法1:DP 用f[i][j]表示s的前i个字符与p的前j个字符是否能匹配。考虑情况: p的第j个字符是小写字符:f[i][j] = f[i-1][j-1] (if s[i] = p[j])f[i][j] = false (if s[i] ≠ p…
2025-6-05 13:55
|
|
2025-6-05 14:02
剑指offer67题-No38-39.二叉树的深度、平衡二叉树
No38:二叉树的深度 简单递归或者层次遍历 class Solution { public: int maxDeep = 0; int curDeep = 0; void dfs(TreeNode* root){ if(root == nullptr) return; curDeep++; maxDeep = max(curDeep, maxDe…
2025-5-30 14:44
|
|
2025-5-30 14:45
剑指offer67题-No27.字符串的排列
类似dfs全排列问题。 有一道相似的题目,可以参考acwing的解析:AcWing 842. 排列数字--深度优先遍历代码+注释 - AcWing,题目如下: 给定一个整数 nn,将数字 1∼n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。 算法: 用 path 数组保存排列,当排列的长度为 n 时,是一种方案,输出。 …
2025-5-28 12:07
|
|
2025-5-28 12:08
剑指offer67题-No24.二叉树中和为某一值的路径(二)
递归,用一个vector存储中间的path路径。 #include <vector> class Solution { public: // 一个存放最后结果,一个存放临时结果 vector<vector<int>> res; vector<int> path; void dfs(TreeNode* root, int ta…
2025-5-26 11:20
|
|
2025-5-26 11:20
剑指offer67题-No23.二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。数据范围: 节点数量 0≤n≤10000≤n≤1000 ,节点上的值满足 1≤val≤1051≤val≤105 ,保证节点上的值各不相同 要求:空间复杂度 O(n) ,时间时间复杂度 O(n2) …
2025-5-26 11:17
|
|
2025-5-26 11:17