自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(255)
  • 收藏
  • 关注

原创 【操作系统】第四章 文件管理

【操作系统】第四章 文件管理

2023-04-25 20:50:31 777

原创 【数据结构】第五章 树与二叉树

【数据结构】第五章 树与二叉树

2023-04-23 22:26:37 949

原创 【计算机组成原理】第三章 存储系统

【计算机组成原理】第三章 存储系统

2023-04-23 22:13:44 1040

原创 【计算机网络】第三章 数据链路层

【计算机网络】第三章 数据链路层

2023-04-02 23:55:05 291

原创 【操作系统】第三章 内存管理

【操作系统】第三章 内存管理

2023-03-29 23:40:18 400

原创 【数据结构】第四章 串

KMP算法的优化就是对next数组进行优化 并使用nextval作为新的模式串的回退数组,进而达到优化KMP算法,详细优化思想如下//对next数组进行优化->生成nextval数组 void GetNextVal(char * str , int len , int * next , int * nextval) {j

2023-03-29 12:05:30 108

原创 【数据结构】第三章 栈 队列和数组

数据结构 第三章 栈 队列和数组

2023-03-28 16:51:23 432

原创 【计算机组成原理】第二章 数据的表示和运算

计组第二章

2023-03-19 20:39:59 130

原创 【计算机网络】第二章 物理层

【计算机网络】第二章 物理层

2023-02-13 16:13:05 156

原创 【数据结构】第二章 线性表

数据结构 第二章 线性表

2023-02-10 18:44:22 788

原创 【操作系统】第二章 进程与线程

进程的数据结构 = PCB(进程控制块) + 程序段 + 数据段。

2023-02-01 15:49:22 302

原创 【计算机网络】第一章 计算机网络结构

计算机网络的标准化工作 计算机网络的标准化需要经历以下4个步骤∶①互联网草案;②建议标准(RFC文档);③草案标准;④互联网标准。

2023-01-30 11:45:01 361

原创 【计算机组成原理】第一章 计算机系统概述

【计算机组成原理】第一章 计算机系统概述

2023-01-22 23:06:03 1429

原创 【数据结构】第一章 绪论

【数据结构】第一章 绪论。

2023-01-17 20:14:30 572

原创 【操作系统】 第一章 操作系统概述

第一章 计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1.1.3 操作系统的目标和功能 1.1.4 习题 1.2 操作系统的发展历程 1.2.1 手工处理阶段 1.2.2 批处理阶段 1.2.3 分时操作系统 1.2.4 实时操作系统 1.2.5 网络OS+分布式OS 1.2.6 个人操作系统 1.2.7 习题 1.3 操作系统的运行环境 1.3.1 处理器运行模式 1.3.2 中断和异常的概念 1.3.3

2023-01-15 21:29:49 455

原创 【环境配置】vs2022引入libevent库

(0)这里直接提供生成好的静态库(1)下载解压后,有个libevent文件夹,可以随意放,但要记得路径,最好和项目同级目录,便于寻找。(2)确保该项目中有一个.cpp文件,右键项目属性->VC++目录->包含目录->libevent\include路径(3)属性->VC++目录->包含目录->libevent\include路径(4)属性->VC++目录->包含目录->libevent\WIN32-Code\nmake(5)属性->VC++目录->库目录->libevent\lib(6)属性->链

2022-10-24 22:34:05 1029 2

原创 【环境配置】vs2022搭建jsoncpp

(0)下载jsoncpp,这里直接提供已经生成好的静态库(1)下载解压后,有个json文件夹,可以随意放,但要记得路径,最好和项目同级目录,便于寻找。(2)确保该项目中有一个.cpp文件,右键项目属性->C/C+±>常规->附加包含目录->添加json/include路径(3)属性->链接器->常规->附加库目录->添加json/lib路径(4)属性->链接器->输入->附加依赖项->添加json/lib下的.lib文件名(5)属性->C/C+±>代码生成->运行库->多线程调试(/MTD)(6)

2022-10-24 22:28:06 2976

原创 【review-list 1】反转链表

解法一:双指针迭代(推荐)step1: 定义pre指向pHead前一个结点、next指向pHead下一个结点step2: 通过头指针的移动来不断使用pre、pHead、next指针进行方向逆转,直到pHead == nullptrstep3: 此时退出循环,pre指向最后一个结点,也就是反转后的头结点C++实现代码...

2022-06-14 23:35:11 198

原创 【C++】模板元编程栗子

一、题目描述使用c++提供的模板编程,将二进制数转换成十进制二、代码template<size_t N>class BinToDec {public: static const int value = BinToDec<N / 10>::value * 2 + N % 10;};template<>class BinToDec<0> {public: static const int value = 0;};int main(

2022-05-29 18:50:30 228

原创 【数据结构】并查集

文章目录一、引言二、C++实现三、测试一、引言并查集的相关介绍二、C++实现#include<iostream>using namespace std;class Ufset{private: int* parent; size_t size; //parent对象的个数private: void Showchild(int child)const { cout << child << " "; for (int i = 0; i

2022-05-29 18:14:17 137

原创 【数据结构】B/B-树(目录树)

引言关于B树的性质一、B树的结构二、B树的实现#include<iostream>using namespace std;#if 1//5分支Btree#define M 5 //奇数#define MAXSIZE (M-1) //最多元素个数#define MINSIZE (M/2) //最少元素个数 //B树class Btree{public: //关键码类型 using KeyType = char; //元素类型 typedef struct

2022-05-27 17:37:39 737

原创 【数据结构】字典树T树

文章目录为什么需要字典树?字典树的实现原理数据结点的设计为什么需要字典树?实现类似搜索引擎的效果,当输入“西安”关键字时,下面出现的联想词(如下图)字典树的实现原理数据结点的设计...

2022-05-21 20:56:51 334

原创 【设计模式】类关系

文章目录引言一、依赖Dependency二、关联Association(1)弱关联(2)强关联引言类与类之间的耦合性:一、依赖Dependency例:A类是B类的成员函数的参数、返回值(局部变量)class A{};class B{public: void FunB(A& a){} A GetA() { return A(); }};二、关联Association例:A类是B类的一个成员属性(1)弱关联class A{};class B{privat

2022-05-11 14:51:38 211

原创 【C++多线程】银行多人转账模拟

文章目录一、题目要求二、代码实现一、题目要求使用C++的线程并发库,实现并模拟多人在线同时转账的过程,确保转账不能出现差错。例如:Account A(“xiaoming”, 1000);Account B(“zhangqiang”, 2000);Account C(“zq”, 1500);B->A 200 A 1200 B 1800B->c 500 B 1300 C 2000C->A 300 A 1500 C 1700二、代码实现#if 1#inclu

2022-05-03 17:00:43 1387

原创 【C++多线程】生产者消费者模型

文章目录一、题目要求二、解答三、题目要求四、解答(1)行锁(2)表锁一、题目要求生产者消费者模型:在多线程下生产0~100个数,生产者线程1生产20个数据后,消费者线程1进行消费输出。二、解答使用到的技术:互斥锁、条件变量、多线程、双端队列#if 1#include<iostream>#include<deque>#include<mutex>#include<condition_variable>using namespace std

2022-04-29 19:41:26 1821

原创 【LC动态规划】542. 01 矩阵

文章目录一、题目描述二、算法分析三、代码一、题目描述二、算法分析三、代码class Solution {public: vector<vector<int>> updateMatrix(vector<vector<int>>& mat) { int m = mat.size(); int n = mat[0].size(); vector<vector<int>&g

2022-04-27 20:14:01 195

原创 【LC动态规划】91. 解码方法

文章目录一、题目描述二、算法分析三、代码一、题目描述二、算法分析三、代码class Solution {public: int numDecodings(string s) { int n = s.size(); vector<int> dp(n + 1, 0); dp[0] = 1; for(int i = 1; i <= n; ++i) { //单字符解析:当

2022-04-27 17:31:32 261

原创 【LC动态规划】最小路径和

文章目录一、题目描述二、分析过程三、代码一、题目描述二、分析过程三、代码class Solution {public: int minPathSum(vector<vector<int>>& grid) { int m = grid.size(); int n = grid[0].size(); vector<vector<int>> dp(m, vector<int>

2022-04-26 11:11:53 911

原创 【LC动态规划】不同路径II

文章目录一、题目描述二、分析三、代码一、题目描述二、分析本题是62.不同路径的障碍版,整体思路大体一致。但就算是做过62.不同路径,在做本题也会有感觉遇到障碍无从下手。其实只要考虑到,遇到障碍dp[i][j]保持0就可以了。也有一些小细节,例如:初始化的部分,很容易忽略了障碍之后应该都是0的情况。三、代码class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>&amp

2022-04-26 09:52:44 943

原创 【动态规划】判断子序列

文章目录题目描述双指针解法动态规划题目描述双指针解法class Solution {public: bool isSubsequence(string s, string t) { int m = s.size(); int n = t.size(); int i = 0, j = 0; while(i < m && j < n) { if(s[i] == t

2022-04-18 15:10:05 812 1

原创 【动态规划】买股票的最佳时期

文章目录一、题目描述二、动态转移方程三、题解一、题目描述二、动态转移方程三、题解class Solution {public: //动态规划 int maxProfit(vector<int>& prices) { int n = prices.size(); if(n < 2) return 0; vector<int> dp; dp.resize(n, 0);

2022-04-17 22:37:41 405

原创 【动态规划】打家劫舍

文章目录一、题目描述二、算法分析三、题解代码一、题目描述二、算法分析三、题解代码class Solution {public: int rob(vector<int>& nums) { int house_len = nums.size(); vector<int> dp; dp.reserve(house_len); for (int i = 0; i < house_len; ++i) { if (i == 0) {

2022-04-17 20:12:20 391

原创 【动态规划】机器人走m*n宫格

文章目录一、题目描述二、代码实现一、题目描述二、代码实现#include<iostream>#include<vector>using namespace std;void Robits(vector<vector<int>>& dp){ for (int i = 0; i < dp.size(); ++i) { for (int j = 0; j < dp[i].size(); ++j)

2022-04-17 12:19:50 804

原创 【动态规划】最长公共子序列

文章目录一、引言二、最长公共子序列三、解题思路四、代码五、代码优化一、引言二、最长公共子序列三、解题思路四、代码int LSCLen(char* arr, char* brr, int m, int n){ //if (nullptr == arr || nullptr == brr) return 0; if (m == 0 || n == 0) return 0; else { if (arr[m] == brr[n]) { return LSCLen(arr,

2022-04-14 16:25:53 151

原创 【分治策略】打印子集

文章目录一、题目描述二、解题思路三、代码实现一、题目描述通过使用分治策略,打印一个数组元素的所有子集输入:1 2 3输出:1 2 31 21 312 323二、解题思路通过这个程序的思路进行分析void fun(int i, int n){ if(i >= n) return; else { fun(i + 1, n); fun(i + 1, n); }}int main(){ fun(0, 3);}上述程序的递归活动如下我们在递推

2022-04-13 19:22:23 259

原创 【分治策略】全排列

文章目录一、题目描述二、思路分析三、递归程序一、题目描述二、思路分析若R = {1, 2, 3} 对应的全排列就是1 3 22 1 32 3 13 2 13 1 2进行层次分析:三、递归程序#include<iostream>using namespace std;#if 1void Perm(int* arr, int left, int right){ if (left == right) { //确定只剩下一个元素时 for (int i =

2022-04-13 18:20:25 387

原创 【算法】一维最接近点对问题

文章目录一、描述二、思路三、代码一、描述一维最接近点对问题:也就是寻找无序不重复数组的最小差值解题思想:分治策略二、思路三、代码//寻找非负整数序列(不重复)的最小差值#if 1//两边向中间划分int OnePartition(int* arr, int left, int right){ int tmp = arr[left]; int i = left; int j = right; while (i < j) { while (i < j

2022-04-12 18:40:22 1693

原创 【七】归并排序

归并排序归并排序的思想:类似于二叉树的后序遍历(根左右)。(递归过程中分组,回归过程中排序合并数据)//归并排序(递归)#if 1//有序合并void Merge(int* src, int* des, int left, int mid, int right){ int i = left; int j = mid + 1; int k = left; while (i <= mid && j <= right) { des[k++] = src[

2022-04-12 17:23:48 580

原创 【算法】分治策略

文章目录一、关于分治策略二、使用分治策略+递归解题一、关于分治策略分治策略: 简单来说就是将问题的规模变小,问题本身不变解题步骤:分解: 将原问题划分成子问题,规模变小递归: 递归求解子问题,若子问题规模足够小,此时停止递归,直接求解合并: 将小规模的解合并成原规模的解注意: 分治策略是一种处理问题的思想,递归是一种算法。二、使用分治策略+递归解题...

2022-04-12 17:16:14 2094

原创 【LC】31. 下一个排列

文章目录题目描述解题思路题解题目描述解题思路题解class Solution {private: //反转降序的后部分 void reverse(vector<int>& nums, int left, int right) { while(left < right) { swap(nums[left++], nums[right--]); } }public:

2022-04-03 18:44:21 830

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除