04 2025 档案
摘要:回溯算法 回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。 回溯法的性能如何呢,这里要和大家说清楚了,虽然回溯法很难,很不好理解,但是回溯法并不是什么高效的算法。 因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的
阅读全文
摘要:235. 二叉搜索树的最近公共祖先 遇到BST就要利用它的性质。p q的公共祖先应该是 [p,q] 中间的。 BST特性:从上到下碰到的第一个[p,q]之间的结点就是最近公共祖先 class Solution { public: TreeNode* traversal(TreeNode* root,
阅读全文
摘要:530.二叉搜索树的最小绝对差 是BST,利用它的性质中序遍历一次即可得到结果。 class Solution { public: void traversal(TreeNode* node, int& mini, TreeNode*& pre){ if(node==nullptr) return;
阅读全文
摘要:654.最大二叉树 和之前中序后序构造二叉树的题目类似,其实更简单(因为只有一个数组)。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig
阅读全文
摘要:513.找树左下角的值 层序遍历即可解决。用递归反而不方便。 class Solution { public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode*> que; int res=0; if(root==nullptr) r
阅读全文
摘要:110.平衡二叉树 第一反应是跟求最大深度很像,在每个步骤中加入判断,如果任意哪一层高度差大于1,则返回错误。 有个小tips是如何又返回判断结果又返回深度?=》函数设置为int类型,如果符合要求则返回高度,如果不符合则返回-1 class Solution { public: int getd(T
阅读全文
浙公网安备 33010602011771号