自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python 实现Dijkstra(迪杰斯特拉)最短路径算法

通过Python实现的Dijkstra(迪杰斯特拉)最短路径算法 。😎

2023-04-05 21:15:38 1084

原创 R-CNN全系、SSD、YOLO全系论文链接汇总

代表性的目标检测论文链接和发表日期

2023-03-13 17:42:58 2979 2

原创 支持向量机(SVM)—— 详细推导及案例应用可视化

支持向量机

2022-12-02 19:40:51 3277 1

原创 pytorch_为神经网络的参数赋值

如何为神经网络的参数赋值?点进来看看吧

2022-10-09 12:32:56 1551

原创 超全的排序算法总结——Python

用Python写的非常全的排序算法

2022-09-23 12:16:16 208

原创 带锁的门_Python

带锁的门

2022-09-23 12:13:15 532

原创 交替放置的盘子——Python

交替放置的黑白小盘盘

2022-09-23 12:12:23 852

原创 三壶谜题_Python

三个壶互相倒水问题的求解

2022-09-23 12:11:18 743

原创 numpy 数组中的轴 axis

numpy数组中的轴numpy有很多维度的数组,一维数组,二维数组,三维数组……n维数组,我们生活的是一个三维世界,因此,在这里就只讨论一维数组,二维数组以及三维数组。对于一维数组,可以将其理解为一条线,二维数组可以将其理解为由线组成的面,而三维数组就可以理解成是由面组成的立方体。numpy中的轴与直角坐标系中的轴概念类似,轴是沿着行和列的方向的,在numpy中使用axis作为轴的名称。有过一定编程基础的同学应该清楚,编程语言中的计数是从0开始的,所以,numpy也不例外,对于轴的个数一样从0开始

2022-03-18 00:00:28 3286 5

原创 C++ new与delete

new与deletenew / delete new[] / delete[]newnew内置类型变量与C语言中的malloc()函数差不多但是对于自定义类型会进行初始化,调用其构造函数delete对于内置类型与C语言中的free()函数差不多但是对于自定义类型会调用其析构函数delete[] arr // 释放arr数组 加上[]以让编译器知道释放的是数组进而调用全部元素的析构函数,否则只调用了第一个元素的析构,并引发断言报错C++提出new和delete,主要是解决两个问题

2022-01-22 17:47:39 328 6

原创 C++ 类与对象

类与对象面向对象三大特性:封装、继承、多态public:可以在类外访问private/protected:只能在类内访问(友元除外)struct 与 classC++中,struct与class都可以定义一个类,主要区别是:class 默认成员变量特性为publicstruct 默认成员变量特性为private类的作用域C++中{}括起来的就是一个作用域声明一个类,也就声明了一个类域,类的所有成员都在类的作用域中**。**在类体外定义成员,需要使用 :: 作用域解析符指明成员属于哪个

2022-01-22 17:44:53 228

原创 C++ 引用

引用概念引用,就是给一个变量起别名。通过使用引用变量就可以拿到其所引用的空间。变量类型 + & 就定义了一个引用。int&,这就是整型变量的引用。引用的理解好多地方建议将引用理解为是一个变量的别名,可我总感觉这样不太恰当。于是冥思苦想,终于找到了一个我认为更加恰当的理解方式。将每一个变量视为笔记本中的一页,引用视为是笔记本每一页上贴的的tag标签,每创建了一个引用,就相当于创建了一个tag,然后将一个变量赋值给这个引用的操作就是,将这个tag贴在这个变量上。这样,每当使用引用

2022-01-22 17:41:12 426 1

原创 C++ 函数重载

函数重载函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。int fun_1(int a, short b){ return a + 2 * b;}int fun_1(short b, int a){ return a + b;}重载的二义性返回值不同则不能构成重载缺省值不同不能构成重载C++重载的原理为什么C语言不支持重载,C++

2022-01-22 17:38:30 400

原创 C++ 缺省参数

缺省参数分类全缺省参数void test_fun_1(int i = 0, int a = 10, int b = 15) // 参数全部都缺省{ cout << "i = " << i << endl; cout << "a = " << a << endl; cout << "b = " << b << endl;}半缺省参数void test_fun_2(int i, int

2022-01-22 17:36:15 323 1

原创 命名空间 namespace

命名空间namespace使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中命名空间的定义// 1. 普通的命名空间namespace qjh // 以qjh命名的命名空间{ // 命名空间中的内容 可以定义变量,也可以定义函数 int rand = 10; int Add(int a, int b) { return a +

2022-01-22 17:30:59 186

原创 堆排序 & TopK

堆所有的完全二叉树都可以用数组来表示,但不一定都是堆,在这里堆使用一个数组来进行表示存在数组中的完全二叉树通过孩子节点寻找父亲节点的方式parent = (children-1)/2大堆树中的所有父亲节点都大于等于它的孩子节点小堆树中的所有父亲节点都小于等于它的孩子节点添加节点直接在尾i节点赋值向上调整删除根节点将根节点与数组最后一个元素交换然后向下调整void AdjustDown(HPDataType* a, int n, int parent)

2021-11-09 22:49:11 271 1

原创 顺序表&链表 知识点总结

线性表之顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。并在数组上完成数据的增删查改// 顺序表的动态存储typedef struct SeqList{ SQDataType* arr; // 指向动态开辟的数组 size_t size; // 数组中有效元素的个数 size_t capacity; // 数组的最大容量}SeqList;使用realloc()函数进行扩容初始条件,结束条件,迭代过程顺序表 经典OJ题给定一个

2021-11-04 18:14:56 378 1

原创 链表带环问题

链表带环有的链表很特殊,内部有环,这种链表称为带环链表## 判断一个链表是否带环为什么slow走一步,fast走两步一定会在交点处相遇?会不会出现二者错过的情况?当fast入环之后,slow可能还没有入环,等到slow入环以后,两个指针之间就会产生一个距离这时可以理解为是fast指针去追slow,这样二者的距离在一点点减小,而且每次循环都是以大小为一个单位缩小,所以,二者距离总会到为0的时候,这时二者在meetNode处相遇,而且是肯定相遇fast走三步,四步…n步,可以相遇吗?

2021-11-04 13:44:42 111

原创 C语言 总结

C语言笔记总结文章目录C语言笔记总结前言初识C语言VS中的一点儿事声明与定义的关系main函数计算机的单位变量局部变量全局变量常量字面常量常变量(关键字:const)字符串转义字符原码,反码,补码规则经典例题externstaticstatic 修饰局部变量static 修饰全局变量static 修饰函数`#define` 定义常量和宏`#define` 定义标识符常量`#define` 定义宏指针.h 文件与 .c 文件的联系结构体分支与循环分支`if` 语句`switch` 语句语法形式`switch

2021-10-30 15:11:10 1388 6

原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次

问题描述一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。解决思路①粗暴解决每一个元素与全部元素遍历比较,未比较成功则为所要找的数字这里应注意在每次比较时,要跳过元素自己与自己比较的情况时间复杂度 O(n^2)代码void Find(const int* arr, size_t num){ for (int i = 0; i < num; i++) { int flag = 1; for (int j = 0;

2021-10-06 23:52:49 1641 9

原创 部分字符串库函数的实现

直接上代码PS: assert函数是断言函数,使用需要引入<assert.h>头文件#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <assert.h>void* m_memmove(void* destination, const void* source, size_t num){ assert(destination && source); if (destin

2021-09-23 17:51:43 61 1

原创 进程 线程 协程(Unity)

进程 线程 协程什么是进程?直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源、数据资源、独立的内存空间。什么是线程?进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小

2021-09-16 00:21:08 736 2

原创 Unity 异步加载场景

异步C# 异步因为同步进程会出现阻塞的情况,为了避免卡顿,以及在处理数据时仍然可以接收用户新的访问,异步的思想就出现了异步可以理解为,在调用异步函数的时候,函数会直接返回,然后剩下的部分等同于在一个新线程中运行异步操作的关键字是asnyc,await,当一个方法具有 async 的签名时, 它会向编译器发出信号,说明此方法包含 await 语句;也包含异步操作。windows官方定义:异步操作后跟同步操作的这种组合是一个异步操作。 换言之,如果操作的任何部分是异步的,整个操作就是异步的。U

2021-09-16 00:09:19 3334 4

原创 浮点数在内存中的存储规则

一个栗子int main(){ int n = 9; float *pFloat = (float *)&n; printf("n的值为:%d\n",n); printf("*pFloat的值为:%f\n",*pFloat); *pFloat = 9.0; printf("num的值为:%d\n",n); printf("*pFloat的值为:%f\n",*pFloat); return 0; }在介绍浮点数在内存中存储的规则之前,不妨先看看这段代码运

2021-08-13 15:20:01 311

原创 排列组合的实现(递归)

先上代码//重定义变量类型typedef char arry_type ;void print_arry(arry_type* nums, int sz){ for (int i = 0; i < sz; i++) { printf("%c ", nums[i]); } printf("\n");}//排列组合函数主体void combinate_arry(arry_type* arr, int sz, int count){

2021-08-10 13:42:37 931 3

原创 函数栈帧的创建与销毁

函数栈帧是什么?C/C++中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。(来自百度百科)可以将函数栈帧理解为函数运行在栈区所开辟的空间,既然在栈区开辟空间,就遵循栈区先使用高地址的空间,再使用低地址的空间的原则。下面我们就带着这六个问题讨论一下函数是怎样创建栈帧又是怎样销毁的、1. 局部变量怎么创建的?2. 局部变量不初始化为什么是随机值?3. 函数传参的顺序,怎样传参的?4. 形参和实参的关系?5. 函数调用怎么做到的?6. 函数调用结束后怎么返回的?函

2021-08-07 18:07:37 240

原创 变量与变量之间会有间隔

编译器为数组开辟空间会额外开辟空间不同的编译器所多开辟的空间不同,经过测试VS2019环境中,编译器会额外开辟两个数组元素大小的空间测试代码如下int main(){ int i = 0; // 将i先定义才会出现死循环,涉及到栈的性质 int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = 0; i <= 12; i++) { arr[i] = 0; printf("hello bit\n"

2021-08-07 00:21:13 356

原创 递归 递归 递归

什么是递归?强烈推荐博客网的一篇博客,地址如下:什么是递归?先了解什么是递归.举个栗子:你手中有一把钥匙,面前有一扇门,打开门之后发现门后面还有一扇门,紧接着你又用钥匙打开下一扇门,然后又发现还有一扇门……突然,当你打开一扇门后,门后不是一扇门,而是一张桌子,上面放着一部全新未激活的iPhone12 Pro MAX,你非常的开心,就沿着刚才打开过的门回到了最开始的地方。上述的过程就是一个经典的递归。怎么写递归?说了这么多,怎么写递归呢,根据递归在百度百科的定义中,有这样一句话:一般来说,递归需

2021-07-24 20:57:48 113

原创 递归求解汉诺塔问题(详细解答)

汉诺塔移动步数的计算具体汉诺塔的规则大家自行百度吧,就不介绍了,这里介绍一下如何求解汉诺塔移动步数的计算思想。当汉诺塔层数为一层时,很显然只需要一步,直接从A杆移动到C杆当层数为两层时,则需要三步,先将第一个从A杆移到B杆,然后将第二个从A杆移到C杆,最后将第一个从A杆移到C杆,到这里有没有发现规律呢?当层数为三层时,首先要把前两层移到B杆上,这样就可以把第三层移到C杆上了,然后再将这两层从B杆移到C杆上,上面讨论了,将两层汉诺塔从一个杆移动到另一个杆上面需要三步,所以当层数为三层时,就需要3+

2021-07-24 20:56:16 3862

原创 使scrollbar保持在底部

public Scrollbar Scrollbar;private bool isRefresh;private void Update() { if (Time.frameCount % 6 == 0)//每6帧更新 { if (isRefresh) { Scrollbar.value = 0; isRefresh = false;

2021-04-27 19:28:24 191

原创 Unity在一定时间间隔连续创造物体

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-04-27 19:16:52 3973 2

原创 函数(C语言)

自定义函数自定义函数和一般的函数一样都是有函数名,返回值类型和函数参数。函数参数函数的参数有两个,分别是形式参数和实际参数实际参数(实参)真是传给函数的值成为实际参数。实参可以是:变量,常量,表达式,函数等。需要注意的是,无论是什么类型的量,在进行函数调用的时候都必须具有确定的值,进而才能将参数传递给函数。Swap1(a, b);//传值调用在上述代码中,a和b就是Swap1函数的实际参数。形式参数(形参)形式参数指的是函数括号中的变量,用来接收实参。形式参数只有在函数被调用的时候才会被

2021-03-07 17:24:32 86

原创 初识C语言(2)

初识C语言(2)1、较为重要的几个关键字:sizeof:单位是字节,可以测量变量、数组;register:例如:register int a = 10;就是建议把a定义为寄存变量,进而节省内存消耗;typedef:类型重定义,重定义变量类型的名字;extern:声明外部符号;static:static修饰局部变量的时候,能够使局部变量的生命周期变长,即出局部范围之后不会销毁,static修饰全局变量会改变其作用域,让静态的全局变量只能在自己所在的源文件内部使用,出源文件就不再可以使用了;static改变了

2021-01-30 11:02:37 95 1

原创 初识C语言(1)

初始C语言(1)因为我目前刚转到计算机,所以是在B站上面自学的,下面就步入正题,对我目前C语言学习的一些简单的总结:1、#define _CRT_SECURE_NO_WARNNINGS(这是VS独有的)因为vs编译器认为printf、scanf…这样的函数是unsafe的,所以要在一开始编写这段指令,使得这种函数可以正常运行2、#include<stdio.h>:<stdio.h>是standard input output.head的缩写,这是一个头文件的引用,只有引用头文件

2021-01-30 00:24:59 132

空空如也

空空如也

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

TA关注的人

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