- 博客(21)
- 收藏
- 关注
原创 Dijkstra算法模板 - 解决网络延迟时间问题
class Solution {public: int networkDelayTime(vector<vector<int>>& times, int n, int k) { const int inf = INT_MAX/2; //定义无穷距离,除 2 是为了防止计算距离的时候溢出 // 标记变量 visited 数组 // 0 表示索引对应的节点未被访问过,还没有计算过从原点到对应节点的最短距
2022-03-26 22:37:35
563
原创 图的广度优先搜索模板-解决01矩阵问题
class Solution { static constexpr int direct[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; // 方向变量,上下左右public: vector<vector<int>> updateMatrix(vector<vector<int>>& mat) { int m = mat.size(); // 行数 i
2022-03-26 19:07:07
889
原创 python的TCP套接字编程
一下代码仅供理解TCP套接字服务器IP使用127.0.0.1后,可在同一台电脑上跑两个程序客户端from socket import *from pip._vendor.distlib.compat import raw_inputdef main(): server_address = '127.0.0.1' # 服务器的IP地址 server_port = 1200
2022-03-22 18:45:36
4707
原创 python的UDP套接字编程
下面的代码用来理解UDP套接字客户端代码from socket import *from pip._vendor.distlib.compat import raw_input#127.0.0.1是本地回环地址,经常用来进行测试def main(): server_address = '127.0.0.1' # 服务器的IP地址 server_port = 1200
2022-03-22 18:15:07
4354
原创 KMP算法
class Solution {public: int strStr(string haystack, string needle) { int n = haystack.size(); int m = needle.size(); if(m==0) return 0; vector<int> next = getNext(needle); for(int i=0, j=0; i&l
2022-03-02 17:38:30
74
原创 并归排序C++代码
// 并归排序class Solution {public: vector<int> sortArray(vector<int>& nums) { vector<int> temp(nums.size()); // 开辟一个辅助数组 mergeSort(nums, temp, 0, nums.size()-1); return nums; } // 并归排序核心代码!!! void
2022-01-29 20:28:03
1354
原创 C/C++最大堆代码
C代码typedef struct heap{ int capacity; // 堆的容量,即能容纳多少个有效的数据元素 int size; // 堆的当前数据量 int* data; // 指向堆中存放数据的地址,即数组的首元素}maxHeap;maxHeap* MaxHeapInit(int capacity){ maxHeap* h = (maxHeap*)malloc(sizeof(maxHeap)); // 分配一个堆对象
2022-01-25 16:33:58
547
原创 C语言选择排序代码
int* sortArray(int* nums, int numsSize, int* returnSize){ *returnSize = numsSize; for(int i=0; i<numsSize-1; i++) { // 找出第 i 小的数 int minIndex = i; // 暂定第 i 小的数的索引为 i for(int j=i+1; j<numsSize; j++) //
2022-01-24 21:59:21
3173
1
原创 C++ 并查集代码
class unionFindSet {private: vector<int> parent;public: unionFindSet(int eleNums) // 构造函数 { parent.resize(eleNums + 1, 0); //用零做初始化,代表刚开始所有元素各自都是一个集合,同时零表示该集合的秩; } //不使用索引为0的元素,因为合并使用了秩合并 int setF
2022-01-24 18:59:20
775
原创 希尔排序代码
int* sortArray(int* nums, int numsSize, int* returnSize){ *returnSize = numsSize; int increment; for(increment=numsSize/2; increment>0; increment/=2) // 增量序列 { int k; // 将元素分组,k 表示组编号,同
2022-01-23 17:56:51
424
原创 插入排序代码
int* sortArray(int* nums, int numsSize, int* returnSize){ *returnSize = numsSize; int i; // 表示将要插入的元素的位置 for(i=1; i<numsSize; i++) // 将要插入的元素从第二个开始 { int curDigit = nums[i]; // 当前要插入的元素
2022-01-22 15:59:50
1221
原创 C++引用
变量名是什么变量名用来标识一个存储空间(空间大小取决于将变量定义成的类型)。更通俗的说,变量名就是符号地址,在编译的过程中,编译器(编译器中有一个符号表,管理着符号与地址的映射)会将符号地址变成内存地址(这个内存地址是用机器码来表示的),所以符号地址不占空间。引用是什么假定已经定义了一个变量,那么引用就是给这个变量所标识的空间取了另外一个名字,即:这个空间有两个符号地址,所以引用是不占内存的。经常将引用比作常指针,只是引用的作用与常指针相似,但是常指针是占用内存的,即用了一块空间来保存另一个变量的地址
2021-11-07 12:02:23
101
原创 队列顺序存储结构中的循环队列判空与判满的过程
循环队列介绍这里介绍的时队列的顺序存储结构:初始时:Q.front = Q.rear = 0;队首指针进1:Q.front = (Q.front+1)%maxSize;队尾指针进1:Q.rear = (Q.rear +1)%maxSize;队列长度: (Q.rear +maxSize-Q.front)%maxSize;出队入队时:指针都按顺时针方向进 1。显然,队空的条件是:Q.front = Q.rear。但是,如果入队的速度快于出队的速度,队尾指针很快就赶上队首指针,此时,也有:Q.fr
2021-10-16 15:49:14
2819
原创 C中的字符串常量、字符串数组以及字符串指针
字符串常量"hello";上述用双引号括起来的是字符串常量,该常量保存在常量区,不能修改它。双引号的作用是在最后一个字符的后面加’\0’字符并且返回该字符串常量的首地址,即第一个字符 h 的地址。字符串数组char str[]= "hello";字符串数组中必须包含’\0’,否则就变成了字符数组。上述操作只能在定义的时候使用,即,使用数组的初始化功能。用字符串常量来初始化字符串数组,字符串常量的地址并没有赋值给 str,数组名是地址常量,不能修改;并且上述操作使用的是数组的初始化功能,即,先
2021-09-30 15:32:44
775
原创 C语言中的二级指针
一级指针一级指针直接称为指针,是一个存储地址的变量。以int型为例:int a=10;//定义了一个int型变量,赋初值为10int *p=&a;//定义了一个int型指针变量,并将a变量的地址赋值给指针变量*P = 5;//通过使用*来解引用,这样就可以操作指针指向的变量二级指针二级指针分为两种:指向指针的指针指向数组的指针1. 指向指针的指针指向指针的指针定义如下:int **p;/* int *p表示的指向int型变量的指针变量,再加一个*,表示的还是指针
2021-09-30 14:43:06
565
原创 缓冲/缓存与C++
缓冲与缓存缓冲与缓冲本质上都是一块内存区域,缓冲强调的时写操作(对硬盘),缓存强调读操作(对硬盘)。缓冲缓冲(buffer)是指:向硬盘写入数据时,先把数据放入到一块内存区域(称为缓冲区)中,然后再一起向硬盘写入,这样可以把分散写操作集中进行。强调写操作缓存缓存(cache)是指:在读取硬盘中的数据时,把常用的数据保存到一块内存区域(称为缓存区)中,再次读取该数据时,直接在缓存区中读取。强调读操作。C++的输入输出机制三级标题四级标题五级标题六级标题...
2021-09-29 13:50:02
536
原创 数据对象,变量名,左值
数据对象:用于存储值的数据存储区域统称为数据对象,即对象指的是实际的数据存储(内存)。变量名:标识对象的一种方法。左值:标识特定数据对象的名称或表达式,即标识或定位存储位置的标签。...
2021-05-09 12:57:56
78
原创 贝叶斯滤波框架(含数学证明)
1. 符号说明xkx_{k}xk表示kkk时刻目标的状态zkz_{k}zk表示kkk时刻目标的观测状态Xk={x0,x1,...,xk}X_{k}=\{x_0,x_1,...,x_k\}Xk={x0,x1,...,xk}表示从初始000时刻到kkk时刻目标的状态的集合Zk={z1,z2,...,zk}Z_{k}=\{z_1,z_2,...,z_k\}Zk={z1,z2,...,zk}表示从111时刻到kkk时刻目标的观测状态的集合2. 贝叶斯框架假设已知目标状态的先验信息
2020-11-25 19:10:27
495
原创 标准概率多假设跟踪算法(PMHT)详细讲解
下面给出跟踪的动态过程:黑色点代表目标的真实位置,绿色点代表目标的多个测量,红圈代表对目标的估计位置
2020-11-23 17:46:18
4569
30
原创 解决Visio画图中公式变形的问题
Visio画图中公式变形的问题1. 问题描述从MathType中拷贝公式到Visio中,当关闭Visio文件后,再次打开Visio文件,Visio里的公式有时会莫名其妙地变形。2. 解决办法当遇到公式变形,那么很可能是因为将公式从MathType中拷贝到Visio后,在Visio中再次点开了公式进行了修改公式(我遇到的情况是这样)。所以只要我们在MathType中编辑完公式,拷贝到Visio中后不再对公式进行修改,就可以避免上述问题。...
2020-11-22 11:30:25
14517
3
原创 指针与关键字const
C语言之指针与关键字constconst int a = 10;//a的值不可改变,如果在程序中出现改变a的值的代码,程序会出现编译错误,下同。int function_1(const int *p, int n);//使函数不能通过指针p来改变指针p指向的内容//但可以通过其他指针来修改指针p指向的内容,如int function_1(const int *p, int n){ int *a = p; ...}//虽然不能通过指针p来修改指针p指向的内容,但可以通过指针a来修改指针p所指
2020-11-12 16:45:25
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人