摘要: 回溯算法 回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。 回溯法的性能如何呢,这里要和大家说清楚了,虽然回溯法很难,很不好理解,但是回溯法并不是什么高效的算法。 因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的 阅读全文
posted @ 2025-04-12 20:34 ChloeChen0221 阅读(10) 评论(0) 推荐(0)
摘要: 235. 二叉搜索树的最近公共祖先 遇到BST就要利用它的性质。p q的公共祖先应该是 [p,q] 中间的。 BST特性:从上到下碰到的第一个[p,q]之间的结点就是最近公共祖先 class Solution { public: TreeNode* traversal(TreeNode* root, 阅读全文
posted @ 2025-04-12 20:33 ChloeChen0221 阅读(7) 评论(0) 推荐(0)
摘要: 530.二叉搜索树的最小绝对差 是BST,利用它的性质中序遍历一次即可得到结果。 class Solution { public: void traversal(TreeNode* node, int& mini, TreeNode*& pre){ if(node==nullptr) return; 阅读全文
posted @ 2025-04-12 20:30 ChloeChen0221 阅读(6) 评论(0) 推荐(0)
摘要: 654.最大二叉树 和之前中序后序构造二叉树的题目类似,其实更简单(因为只有一个数组)。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig 阅读全文
posted @ 2025-04-12 20:30 ChloeChen0221 阅读(6) 评论(0) 推荐(0)
摘要: 513.找树左下角的值 层序遍历即可解决。用递归反而不方便。 class Solution { public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode*> que; int res=0; if(root==nullptr) r 阅读全文
posted @ 2025-04-12 20:29 ChloeChen0221 阅读(9) 评论(0) 推荐(0)
摘要: 110.平衡二叉树 第一反应是跟求最大深度很像,在每个步骤中加入判断,如果任意哪一层高度差大于1,则返回错误。 有个小tips是如何又返回判断结果又返回深度?=》函数设置为int类型,如果符合要求则返回高度,如果不符合则返回-1 class Solution { public: int getd(T 阅读全文
posted @ 2025-04-03 11:26 ChloeChen0221 阅读(8) 评论(0) 推荐(0)
摘要: 226.翻转二叉树 其实就是把二叉树的每一个结点的左右子树都反转 递归写法 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * T 阅读全文
posted @ 2025-03-30 11:10 ChloeChen0221 阅读(8) 评论(0) 推荐(0)
摘要: 二叉树在大二学数据结构的时候就没搞懂。。现在从头捡起来 基本知识 https://programmercarl.com/二叉树理论基础.html 二叉树的遍历 深度优先遍历 前序遍历(递归法,迭代法) 中序遍历(递归法,迭代法) 后序遍历(递归法,迭代法) 广度优先遍历 层次遍历(迭代法) 递归遍历 阅读全文
posted @ 2025-03-30 11:09 ChloeChen0221 阅读(29) 评论(0) 推荐(0)
摘要: 150. 逆波兰表达式求值 同样使用栈,碰到数字就入栈,碰到运算符就出栈两个数字进行运算结果,将结果入栈 class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> st; for(string s:tokens 阅读全文
posted @ 2025-03-25 19:57 ChloeChen0221 阅读(5) 评论(0) 推荐(0)
摘要: 由于栈(队列)底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能),所以STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。 C++ STL stack push():将元素压入栈顶。 pop():将栈顶元素弹出。 top():访问栈顶元素。 e 阅读全文
posted @ 2025-03-25 13:22 ChloeChen0221 阅读(11) 评论(0) 推荐(0)