- 博客(48)
- 问答 (2)
- 收藏
- 关注
原创 [ 笔记 ] 计算机网络安全_3_Web安全
[笔记] 计算机网络安全:(3)Web安全网络安全基础internet协议的安全性Web安全网络扫描和网络监听防火墙原理与设计入侵检测系统VPN技术目录[笔记] 计算机网络安全:(3)Web安全@[TOC](目录)3.1 Web安全概述3.1.1 Web服务器的安全Web应用的信息收集攻击Web服务器软件攻击Web应用程序攻击Web数据内容3.1.2 Web客户端的安全3.1.3 Web通信信道的安全3.2 Web服务器指纹识别3.2.1 Web服务器指纹介绍3.2.2 Web服务器B
2022-05-28 10:25:01
905
原创 [ 笔记 ] 计算机网络安全_2_internet协议的安全性
[笔记] 计算机网络安全:(2)internet协议的安全性2.1 网络层协议2.1.1 IP协议的安全性IP数据报格式潜在的安全问题IP协议未验证IP地址IP协议支持定向广播IP协议未对数据加密IP协议仅对首部进行校验IP源路由选项支持IP协议支持分段重组IP安全问题1:针对IP地址的攻击IP协议未验证IP地址的真实性IP地址欺骗攻击源IP地址欺骗:IP协议缺乏对地址真实性的认证机制,不能保证数据就是从数据包中给定的源地址发出的。目的IP地址欺骗:IP协议也不能保证
2022-05-28 10:20:51
1293
原创 [ 环境搭建 ] Ubuntu安装后环境配置
Ubuntu 20.04LTS安装后环境配置换源直接编辑,所在文件夹中已经有备份文件sources.baksudo gedit /etc/apt/sources.list我常用阿里源,觉得企业维护可能好一点deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted un
2022-01-25 23:06:52
969
2
原创 [ 回溯 ] 复原IP地址
93. 复原 IP 地址 - 力扣(LeetCode) (leetcode-cn.com)复原IP地址DFS回溯ip有效性的判断什么时候进入下一层class Solution {public: vector<string> ans; string path; void DFS(string& s, int index, int pointNum) { // 结束条件与返回值有关,返回值有三个点时返回 if (po
2021-07-25 17:23:10
280
原创 [ 回溯 ] 分割回文串
131. 分割回文串 - 力扣(LeetCode) (leetcode-cn.com)分割回文串与数组组合不同的是,数组是取数,该题是找分割线class Solution {public: // 返回值 vector<vector<string>> ans; vector<string> path; // DFS void DFS(string& s, int index) { // 边
2021-07-25 17:22:37
136
原创 [ 回溯 ] 电话号码的字母组合
17. 电话号码的字母组合 - 力扣(LeetCode) (leetcode-cn.com)电话号码的字母组合DFS回溯class Solution {public: // 将9键映射到数字 const string mp[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz",}; vector<string> ans; string path; void D
2021-07-25 17:21:52
223
原创 [ 回溯 ] 组合总和III
216. 组合总和 III - 力扣(LeetCode) (leetcode-cn.com)组合总和 IIIDFS回溯剪枝, 剪枝是根据条件剪枝,比如在for循环根据for剪枝, 在边界处根据n剪枝class Solution {public: vector<vector<int>> ans; vector<int> path; void DFS(int k, int n, int sum, int index) {
2021-07-25 17:21:11
108
原创 [ 回溯 ]组合总和II
40. 组合总和 II - 力扣(LeetCode) (leetcode-cn.com)组合总和IIDFS回溯去重class Solution {public: vector<vector<int>> ans; vector<int> path; void DFS(vector<int>& candidates, int target, int sum, int index, vector<bool>
2021-07-25 17:20:25
111
原创 [ 回溯 ] 组合总和
39. 组合总和 - 力扣(LeetCode) (leetcode-cn.com)组合总和DFS回溯剪枝遇到可以重复取数怎么办?class Solution {public: vector<vector<int>> ans; vector<int> path; void DFS(vector<int>& candidates, int target, int sum, int index) {
2021-07-25 17:19:52
99
原创 [ 回溯 ] 组合
77. 组合 - 力扣(LeetCode) (leetcode-cn.com)组合模板void backTracking(...) { if (到达边界) { 保存结果; 返回; } for (本层处理逻辑) { 保存本次处理数; backTracking(); 回溯; }}DFS回溯剪枝class Solution {public: vector<vecto
2021-07-25 17:19:02
102
原创 [ 二叉树 ] 有序数组转化为平衡二叉搜索树
108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode) (leetcode-cn.com)有序数组转化为平衡二叉搜索树递归将数组按中点分治递归自然构造成平衡二叉搜索树平衡来源于中点分治搜索树来自于有序,利用的是二叉搜索树的性质,和递归体中遍历方式无关class Solution {public: TreeNode* traversal(vector<int>& nums, int left, int right) { // 递归边界
2021-07-22 15:14:06
147
原创 [ 二叉树 ] 修剪二叉搜索树
669. 修剪二叉搜索树 - 力扣(LeetCode) (leetcode-cn.com)修剪二叉搜索树递归一棵树当前结点值小于low,那么保留右子树一棵树当前节点值大于high,那么保留左子树一棵树当前节点值在[low, high] 之间, 保留当前树。class Solution {public: TreeNode* trimBST(TreeNode* root, int low, int high) { // 修剪到空结点时返回 if (!ro
2021-07-22 15:13:29
136
原创 [ 二叉树 ] 删除搜索二叉树中的结点
450. 删除二叉搜索树中的节点 - 力扣(LeetCode) (leetcode-cn.com)删除搜索二叉树中的结点递归没有孩子,直接删除没左树,右树补;没右树,左树补左右树都存在,左树补到右树最左结点的左边; 或右树补到左树最右结点的右边class Solution {public: TreeNode* deleteNode(TreeNode* root, int key) { if (!root) return nullptr; // 寻找删除点
2021-07-22 15:12:53
122
原创 [ 二叉树 ] 二叉搜索树中的插入操作
701. 二叉搜索树中的插入操作 - 力扣(LeetCode) (leetcode-cn.com)二叉搜索树中的插入操作递归多说一句: Leetcode提供的默认函数并不是确定的, 我们函数的返回值和参数需要我们自己思考。比如,我们要插入一个结点,我们要找到新结点,此处是null;我们要找到位置的父结点。此时我们在找到结点时返回父结点就很简单。所以我们要根据我们要干什么先确定参数和返回值class Solution {public: TreeNode* insertIntoBST(
2021-07-22 15:12:06
293
原创 [ 二叉树 ] 二叉搜索树转换为累加树
538. 把二叉搜索树转换为累加树 - 力扣(LeetCode) (leetcode-cn.com)二叉搜索树转换为累加树递归重要思想: 前序中序后序不是唯一,按我们的想法选择 中 左 右, 中 右 左, 左 中 右, 右 中 左, 左 右 中, 右 左 中 合适的来解class Solution {public: int pre; void traversal(TreeNode* cur) { // 递归边界 if (!cur) return
2021-07-22 15:11:35
113
原创 [ 二叉树 ] 二叉树的最近公共祖先
236. 二叉树的最近公共祖先 - 力扣(LeetCode) (leetcode-cn.com)二叉树的最近公共祖先递归自底向上回溯后序遍历class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { // 自底向上 == 回溯 == 后序遍历 if (!root || root == p || root == q)
2021-07-21 21:03:41
102
原创 [ 二叉树 ] 二叉搜索树中的众数
501. 二叉搜索树中的众数 - 力扣(LeetCode) (leetcode-cn.com)二叉搜索树中的众数递归该非严格意义上的二叉搜索树的**中序遍历结果是不严格递增**的保存上次访问指针class Solution {public: int maxCount; int count; TreeNode* pre; vector<int> ans; void searchBST(TreeNode* cur) { if (
2021-07-21 21:03:03
148
原创 [ 二叉树 ] 二叉搜索树的最小绝对差
530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) (leetcode-cn.com)二叉搜索树的最小绝对差递归二叉搜索树的**中序遍历结果是严格递增**的保存中序遍历向量再处理class Solution {public: // 向量保存中序遍历结果 vector<int> value; // 中序遍历 void traversal(TreeNode* root) { if (!root) return;
2021-07-21 21:02:26
111
原创 [ 二叉树 ] 验证二叉搜索树
98. 验证二叉搜索树 - 力扣(LeetCode) (leetcode-cn.com)验证二叉搜索树递归二叉搜索树的**中序遍历结果是严格递增**的测试用例中最小取到了LONG_MINclass Solution {public: // 对于第一次比较,我们需要找到一个测试用例中的最小值 long max = LONG_MIN; bool isValidBST(TreeNode* root) { if (!root) return true;
2021-07-21 21:01:51
119
原创 [ 二叉树 ] 二叉搜索树中的搜索
700. 二叉搜索树中的搜索 - 力扣(LeetCode) (leetcode-cn.com)二叉搜索树中的搜索二叉搜索树(BST)定义二叉搜索树的左子树(非空)上所有结点值均小于根结点值二叉搜索树的右子树(非空)上所有结点值均大于根结点值二叉搜索树的子树仍为二叉搜索树递归前序遍历class Solution {public: TreeNode* searchBST(TreeNode* root, int val) { if (!root) return n
2021-07-21 21:00:52
112
原创 [ 二叉树 ] 合并二叉树
617. 合并二叉树 - 力扣(LeetCode) (leetcode-cn.com)合并二叉树递归不存在子树对当前树的影响,遍历方式任意class Solution {public: TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) { if (!root1) return root2; if (!root2) return root1; // 注意返回值可能是原root1, 可以是
2021-07-21 21:00:13
109
原创 [ 二叉树 ] 最大二叉树
654. 最大二叉树 - 力扣(LeetCode) (leetcode-cn.com)最大二叉树递归明确: 分治左闭右开原则vector使用下标代替分割优化空间class Solution {public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { return traversal(nums, 0, nums.size()); } TreeNode* tra
2021-07-21 20:59:34
152
原创 [ 二叉树 ] 中序和后序遍历确定二叉树
106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode) (leetcode-cn.com)中序和后序遍历确定二叉树递归明确:分治左闭右开切割class Solution {public: TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { // 构造返回值 TreeNode* root = new TreeNode
2021-07-21 20:59:02
954
原创 [ 二叉树 ] 最大二叉树
654. 最大二叉树 - 力扣(LeetCode) (leetcode-cn.com)最大二叉树递归明确: 分治左闭右开原则vector使用下标代替分割优化空间class Solution {public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { return traversal(nums, 0, nums.size()); } TreeNode* tra
2021-07-21 14:03:17
96
原创 [ 二叉树 ] 中序和后序遍历确定二叉树
106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode) (leetcode-cn.com)中序和后序遍历确定二叉树递归明确:分治左闭右开切割class Solution {public: TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { // 构造返回值 TreeNode* root = new TreeNode
2021-07-21 14:01:54
781
原创 [ 二叉树 ] 完全二叉树结点个数
222. 完全二叉树的节点个数 - 力扣(LeetCode) (leetcode-cn.com)完全二叉树结点个数递归(遍历法)当前树结点个数 = 左树 + 右树 + 1隐含了后序遍历class Solution {public: int countNodes(TreeNode* root) { if (!root) return 0; //先左 后右 最后中(+1) return 1 + countNodes(root->
2021-07-20 18:36:04
345
原创 [ 二叉树 ] 平衡二叉树
110. 平衡二叉树 - 力扣(LeetCode) (leetcode-cn.com)平衡二叉树深度:根节点到某节点的最⻓简单路径边的条数高度:某结点到叶子的最长简单路径边的条数树的深度(最深) == 树的高度(最高),那么按深度求class Solution {public: int getDepth(TreeNode* node) { if (!node) return 0; // 如果子树不平衡,那么整体不平衡
2021-07-20 18:35:21
110
空空如也
Linux二维数组遍历缺页中断次数问题
2021-12-31
Qt 读取LineText内容并转为char*的两个操作结果不同的原因是什么?
2021-11-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人