Day19 | 复习二叉树所写部分
代码随想录 | Day19 | 复习二叉树所写部分Day 16 对称二叉树记忆不清晰,只有个大概的轮廓,但后序遍历(严格来说并不是)还是可以写出,层序遍历不记得方法 Day17 111. 二叉树的最小深度 - 力扣(LeetCode) 最小深度不够熟悉,方法也忘记了,也写错了,后续需要再次复习 Day18 222. 完全二叉树的节点个数 - 力扣(LeetCode) 利用二叉树性质的做法需要复习 110. 平衡二叉树 - 力扣(LeetCode) 123456789101112131415161718class Solution {public: bool flag=true; int backtracking(TreeNode *t) { if(t==nullptr) return 0; int l=1+backtracking(t->left); int r=1+backtracking(t->right); if(abs(l-r)>1) ...
MYSQL数据库连接池 | C++ | 项目实战
MYSQL数据库连接池 | C++ | 项目实战笔记通过施磊老师C++数据库连接池项目写出,供自己复习与大家参考 1.项目可以实现什么为了提高MySQL数据库(基于C/S设计)的访问瓶颈,除了在服务器端增加缓存服务器缓存常用的数据之外(例如redis),还可以增加连接池,来提高MySQL Server的访问效率,在高并发情况下,大量的TCP三次握手、MySQL Server连接认证、MySQL Server关闭连接回收资源和TCP四次挥手...
LeetCode Hot100 | Day3 | 二叉树 翻转二叉树&&对称二叉树
LeetCode Hot100 | Day3 | 二叉树:翻转二叉树&&对称二叉树226.翻转二叉树226. 翻转二叉树 - 力扣(LeetCode) 后序遍历交换两个结点就行 完整代码: 123456789101112131415class Solution {public: void tra(TreeNode *t) { if(t==nullptr) return; tra(t->left); tra(t->right); swap(t->left,t->right); } TreeNode* invertTree(TreeNode* root) { tra(root); return root; }}; 101.对称二叉树101. 对称二叉树 -...
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...