板子是主循环啥也不干,只指明下标,dfs里面两种情况,选或不选。 216. 组合总和 III class Solution { public: vector<vector<int>> res; int n, k; vector<vector<int>> combinationSum3(int k_, …
77. 组合 每个点选或不选 得到第一种写法,效率比较低 class Solution { public: // 1~n 选k个 int n, k; vector<vector<int>> res; vector<bool> b; vector<vector<int>> combine(i…
669. 修剪二叉搜索树 如果节点的某一边不和条件,返回另一边 class Solution { public: // 如果<val 返回右边的 TreeNode* trimBST(TreeNode* root, int low, int high) { if (root == nullptr) return nullptr; if (roo…
CentOS7安装MySQL + 创建表 本地版的MySQL用着用着就挂了,在星佬的帮助下整了个docker版的数据库。 直接把他的笔记贴到文章的最后面吧。 实话实说,有点折腾 先按照这个pdf把本地版的MySQL装好 然后能在命令行启动mysql了 centos yum安装mysql出现Public key for mysql-community…
235. 二叉搜索树的最近公共祖先 和昨天的一题很像,两种做法 1、dfs class Solution { public: // dfs版 TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if (root == nullptr || root =…
530. 二叉搜索树的最小绝对差 就中序遍历算了,简洁易懂 class Solution { public: vector<int> nums; // 比较的时候只用比较连着的 int getMinimumDifference(TreeNode* root) { dfs(root); int minn = nums[1] - nums[…
654. 最大二叉树 最大值是根节点,找到根节点后递归构建 class Solution { public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { return dfs(nums, 0, nums.size()); // 左闭右开 } TreeNode…
513. 找树左下角的值 巧妙地切换了下bfs的入队顺序 class Solution { public: // bfs int findBottomLeftValue(TreeNode* root) { int res; queue<TreeNode*> q; q.push(root); while (q.size()) { int …
110平衡二叉树难度最大 剩下的两个就是朴素dfs 110. 平衡二叉树 不和条件返回-1。不然返回最大高度 class Solution { public: // 不和条件了就是-1 bool isBalanced(TreeNode* root) { return getHeight(root, 0) != -1; } int getHeight…
104. 二叉树的最大深度 class Solution { public: int maxn = 0; int maxDepth(TreeNode* root) { dfs(root, 0); return maxn; } void dfs(TreeNode* root, int depth) { if (root == nullptr) { m…