Day18 | 二叉树 完全二叉树的节点个数&&平衡二叉树
代码随想录 | Day18 | 二叉树:完全二叉树的节点个数&&平衡二叉树主要学习内容: 1.完全二叉树的性质,满二叉树的节点数量的计算 2.树的高度和深度问题要用后序遍历更加合适 222.完全二叉树的节点个数222. 完全二叉树的节点个数 - 力扣(LeetCode) 解法一:直接遍历前序遍历 1234567891011121314151617class Solution {public: int res; void r(TreeNode *t) { if(t==nullptr) return; res++; r(t->left); r(t->right); } int countNodes(TreeNode* root) { res=0; r(root); return res; ...
施磊C++ | 进阶学习笔记
施磊C++ | 进阶学习笔记一、对象的应用优化、右值引用的优化1.1 构造,拷贝,赋值,析构中的优化1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include<iostream>using namespace std;class test{public: test(int a = 10) :ma(a) { cout << "test(int)" << endl; } ~test() { cout << "~test" << endl; } test(const test& t) :ma(t.ma) { cout << "test(const &)" << endl; } test&...
施磊C++ | 进阶学习笔记 | 博客汇总
施磊C++高级进阶课程 | 学习笔记 | 博客汇总以下是CSDN链接 施磊C++ | 进阶学习笔记 | 1.对象的应用优化、右值引用的优化-CSDN博客 施磊C++ | 进阶学习笔记 | 2.智能指针-CSDN博客 施磊C++ | 进阶学习笔记 | 3.绑定器和函数对象、lambda表达式-CSDN博客 施磊C++ | 进阶学习笔记 | 4.c++11内容汇总、多线程应用实践-CSDN博客 施磊C++ | 进阶学习笔记 | 5.设计模式-CSDN博客 剩余有关面试的等到明年投简历前学习
MySQL API 使用详解
MySQL API 使用详解连接数据库的步骤众所周知,MySQL数据库是一个典型的C/S结构,即:客户端和服务器端。如果我们部署好了MySQL服务器,想要在客户端访问服务器端的数据,在编写程序的时候就可以通过官方提供的C语言的API来实现。 在程序中连接MySql服务器,主要分为已经几个步骤: 初始化连接环境 连接mysql的服务器,需要提供如下连接数据: 服务器的IP地址 服务器监听的端口(默认端口是3306) 连接服务器使用的用户名(默认是 root),和这个用户对应的密码 要操作的数据库的名字 连接已经建立, 后续操作就是对数据库数据的添删查改 这些操作都是需要通过sql语句来完成的 数据查询:通过调用api 执行一个查询的sql语句 数据修改(添加/删除/更新):通过调用api 执行一个修改数据的sql语句 如果要进行数据 添加/ 删除/ 更新,需要进行事务的处理 需要对执行的结果进行判断 成功:提交事务 失败:数据回滚 数据库的读操作 -> 查询 -> 得到结果集 遍历结果集 ->...
LeetCode Hot100 | Day2 | 二叉树 二叉树的中序遍历&&二叉树的最大深度
LeetCode Hot100 | Day2 | 二叉树:二叉树的中序遍历&&二叉树的最大深度注:和之前写过题解的部分且能够一遍写出来的不再写题解(可以写写注意点) 94.二叉树的中序遍历94. 二叉树的中序遍历 - 力扣(LeetCode) 12345678910111213141516class Solution {public: vector<int> res; void tra(TreeNode *t) { if(t==nullptr) return; tra(t->left); res.push_back(t->val); tra(t->right); } vector<int> inorderTraversal(TreeNode* root) { tra(root); return res; ...
Day17 | 二叉树 二叉树的最大深度&&最小深度
代码随想录 | Day17 | 二叉树:二叉树的最大深度&&最小深度主要学习内容: 利用前序后序层序求解二叉树深度问题 其中穿插回溯法 104.二叉树的最大深度104. 二叉树的最大深度 - 力扣(LeetCode) 递归遍历后序遍历1.递归函数参数和返回值 使用后序遍历一般都是上层需要使用下层函数的返回值 本道题目是返回值表示该子树的最大深度,所以为int 函数参数就是当前结点 1int r(TreeNode *t) 2.确定终止条件 遇到空指针说明结束这层函数 12if(t==nullptr) return 0; 3.本层逻辑 定义上 返回值是这棵子树的最大深度 所以记录左右子树的最大深度然后取最大值再加上本层就是自身的最大深度然后返回即可 1234int left=r(t->left); int right=r(t->right); int res=1+max(left,right); return res; 完整代码: 123456789101112131415class...
LeetCode Hot100 | Day1 | 二叉树 二叉树的直径
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径主要学习内容: 二叉树深度求法 深度的 left+right+1 得到的是从根结点到叶子结点的节点数量 543.二叉树的直径543. 二叉树的直径 - 力扣(LeetCode) 解法思路:说之前先来看一种经典的错误。。 123456789101112131415class Solution {public: int maxDepth=-1; int tra(TreeNode *t) { if(t==nullptr) return 0; return 1+max(tra(t->left),tra(t->right)); } int diameterOfBinaryTree(TreeNode* root) { if(root==nullptr) return 0; return...
Day16 | 二叉树 翻转二叉树&&对称二叉树
代码随想录 | Day16 | 二叉树:翻转二叉树&&对称二叉树主要学习内容: 1.二叉树的递归遍历 2.判断二叉树的递归遍历的方式是前中后那个非常重要 226.翻转二叉树226. 翻转二叉树 - 力扣(LeetCode) 递归遍历思路: 先想好递归三部曲里面的本层逻辑要干点什么,根据这个去想终止条件,返回值和函数参数会容易很多 本层逻辑中需要干的就是交换左右孩子就可以完成二叉树的翻转任务,我们只需要知道当前结点即可,所以函数参数需要传入当前节点。我们需要交换左右孩子,所以当前结点不可以为空,故终止条件为当前节点为空。我们只需要交换左右孩子,所以也不需要返回值。至此递归三部曲结束 1.确定函数参数和返回值 当前节点t以及void 1void pre_tra(TreeNode *t) 2.确定终止条件 当前节点不为空 12if(t==nullptr) return; 3.本层处理逻辑 交换左右孩子 1swap(t->left,t->right); 完整代码: 123456789101112131415class...
代码随想录回溯算法章节小总结
回溯算法章节小总结1.树层去重1.可以对原数组排序的40. 组合总和 II - 力扣(LeetCode) 通过排序+相邻元素相同+used数组来进行去重 123456789101112131415161718192021void backtracking(vector<int>& candidates, int target, int sum, int startIndex, vector<bool>& used) { if (sum == target) { result.push_back(path); return; } for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) { // used[i - 1] == true,说明同一树枝candidates[i -...
Day15 | 二叉树 递归遍历&&迭代遍历&&层序遍历
代码随想录 | Day15 | 二叉树:递归遍历&&迭代遍历&&层序遍历主要学习内容: 1.二叉树递归遍历 2.二叉树迭代遍历 3.二叉树层序遍历 递归三要素: 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。 确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。 确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。 来自代码随想录 (programmercarl.com) 144.二叉树的前序遍历144. 二叉树的前序遍历 -...













