自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 原码、反码、补码 与 模

原码、反码、补码的理解 与模

2022-09-15 11:52:27 419 1

原创 原码、反码、补码(8位二进制数)

原码、反码、补码的计算方法及示例

2022-09-15 11:39:00 6987 3

原创 【Git】Git提交代码到远程仓库,删除分支,克隆到本地 等操作指令

Git管理创建暂存区,连接远程仓库,克隆等相关操作整理。

2022-07-27 15:52:25 305

原创 【串】串的模式匹配算法(BF+KMP)(C语言)

串的模式匹配算法(C语言)1.字符串的初始化函数定义一个字符数组S,我们用第0位来存储该字符串的长度,其余位置顺序存储该字符串。(字符串的首位从1开始)代码实例:#include <stdio.h>#include <string.h>#define N 100 /*静态定义数组的长度*/typedef char String[N]; // String s1 等价于 char s1[N]int StrAssign(String T,

2022-01-13 10:26:27 3407 1

原创 【树】建立二叉链表存储的二叉树+遍历二叉树(先序、中序、后序、层序)

二叉树的先序构建和先序遍历算法1.建立二叉链表存储的二叉树1-1.原理二叉树的构建利用了递归的原理,在按先序序列构建二叉树时,为了能让电脑知道每个结点是否有左右孩子,我们要对原二叉树进行扩展,明确表示每个结点的左右孩子,若当前结点没有左右孩子,我们用’#'表示。由普通二叉树---->扩展二叉树,如下图:此时当我们按先序序列构建上面的二叉树时,应输入的序列为:AB#D##C##1-2.代码void CreateBiTree(BiTree *T) // 二叉树的构造{ char

2022-01-10 12:13:09 19362 1

原创 【排序】冒泡排序算法

冒泡排序算法1.冒泡排序算法模板基础版void BubbleSort(SqList *L){ for (int i = 1; i < L->length; i ++ ) { for (int j = L->length-1; j >= i; j -- ) { // j从后向前走 if (L->arr[j] > L->arr[j+1]) // 若前一项大于后一项,则交换 sw

2022-01-06 18:08:49 237

原创 【排序】选择排序算法

选择排序算法1.选择排序算法模板void swap(SqList *L, int i, int j){ int temp = L->arr[i]; L->arr[i] = L->arr[j]; L->arr[j] = temp;}void SelectSort(SqList *L){ for (int i = 1; i <= L->length-1; i ++ ) { // 循环L.length - 1次 i

2022-01-06 17:46:32 535 2

原创 【排序】直接插入排序算法

直接插入排序1.算法模板void InsertSort(SqList *L){ int j; for (int i = 2; i <= L->length - 1; i ++ ) { if (L->arr[i] < L->arr[i-1]) { L->arr[0] = L->arr[i]; // 设置哨兵 for (j = i - 1; L->arr[j]

2022-01-06 17:31:50 897 1

原创 【排序】归并排序算法

归并排序算法1.归并排序代码模板void Msort(int SR[], int TR1[], int s, int t);void Merge(int SR[], int TR[], int i, int m, int n);void MergeSort(SqList *L) // 封装Msort{ Msort(L->arr, L->arr, 1, L->length);}void Msort(int SR[], int TR1[], int s, int t)

2022-01-06 17:15:25 175

原创 【排序】堆排序算法

堆排序1.代码模板void HeapSort(SqList *L); // 堆排序void HeapAdjust(SqList *L, int s, int m); // 堆调整 将L->arr[s...m]调整成一个大顶堆void HeapSort(SqList *L){ // 从下到上,从右到左,把L中的arr构建成一个大顶堆 for (int i = L->length / 2; i > 0; i -- ) HeapAdjust(

2022-01-06 16:23:28 879 1

原创 【排序】希尔排序算法

希尔排序算法1.代码模板// 希尔排序(Shell Sort)void ShellSort(SqList *L){ int i, j; int increment = L->length; // 先让增量初始化为序列的长度 do { increment = increment / 3 + 1; // 计算增量的值 for (i = increment + 1; i <= L->length; i ++ ) {

2022-01-06 15:45:20 585

原创 【排序】快速排序算法

快速排序1.快速排序模板void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[(l + r)/2]; while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] > x); if (i < j

2022-01-06 15:20:42 135

原创 计蒜客-程序设计:轻重搭配 (贪心)(C++)

计蒜客-程序设计:轻重搭配 (贪心)(C++)一、题目描述n 个同学去动物园参观,原本每人都需要买一张门票,但售票处推出了一个优惠活动,一个体重为 xx 的人可以和体重至少为 2x2x 配对,这样两人只需买一张票。现在给出了 nn 个人的体重,请你计算他们最少需要买几张门票?输入格式第一行一个整数 nn,表示人数。第二行 nn 个整数,每个整数 a_i 表示每个人的体重。输出格式一个整数,表示最少需要购买的门票数目样例输入61 9 7 3 5 5样例输出4二、思路这道题第一次思

2021-12-10 00:10:23 607

原创 计蒜客-红与黑(dfs)(C++)

计蒜客-红与黑(dfs)(C++)一、题目描述蒜厂有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式第一行是两个整数 WW 和 HH,分别表示 xx 方向和 yy 方向瓷砖的数量。WW 和 HH 都不超过 2020。在接下来的 HH 行中,每行包括 WW 个字符。每个字符表示一块瓷砖的颜色,规则如下1)’.’:黑色的瓷砖;2)’#’:红色的瓷砖;3)’@’:黑色的瓷砖,

2021-12-09 23:40:18 786

原创 【DL】(数据)数据集的划分

【DL】(数据)数据集的划分一、划分形式数据集的划分工作是在模型训练之前就要完成的,我们得到的数据集大多都只放在一个文件夹中,标签存放在一个csv文件中,数据集的划分需要我们自己来完成,我们的目标是将一个文件夹中的所有图片,按照比例划分为训练集和验证集,在训练集和验证集中,每一个子文件夹的名称表示该子文件夹中图片的标签。以下图二分类为例:(0表示负类,1表示正类)二、思路:1、读取csv文件,将里面所有图片的文件名存储在列表filename中,每个文件名对应的标签存储在列表label中。2、先

2021-12-07 16:36:14 1404

原创 LeetCode 203. 移除链表元素 (C语言)

LeetCode 203. 移除链表元素1.题目描述给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。2.思路本题的大致思路是,设置两个指针p1,p2,初始分别指向头节点以及头节点的下一个节点,然后依次遍历链表,如果遇到相等的值,就删除p2指向的节点,然后p2向后移动,p1保持不动,直到p1与p2所指节点的值不同,此时p1,p2均向后移动。但是由题目样例的示例三我们可以看到,如果一个链表的n个节点的值均相等

2021-11-25 22:32:52 752

原创 LeetCode 142. 环形链表Ⅱ (C语言)

LeetCode 142. 环形链表1.题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。来源:力扣(LeetCode)链接:https://leet

2021-11-25 22:17:04 134

原创 LeetCode 141. 环形链表 (C语言)(暴力&快慢指针)

LeetCode 141. 环形链表1.题目描述给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。来源:力扣(LeetCode)链接:

2021-11-25 19:46:07 610

原创 LeetCode 83.删除排序链表中的重复元素 (C语言)

LeetCode 83.删除排序链表中的重复元素 (C语言)1. 题目描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。2. 思路从头到尾遍历链表,如果当前结点的值与下一个结点的值相等,我们就删除下一个节点,如果不相等,继续向下遍历,直到链表的末尾。因为需要用到下一个节点的数值,所以需要两个指针。我们设指针p1指向头节点的下一个节点,p2指向头节点,判断p1与p2对应的值是否相等,如果相等,就删除掉p

2021-11-25 00:15:11 982

原创 【ML】神经网络学习笔记_03 权值初始化、正则化

神经网络学习笔记_03六、权值初始化1. 为什么要进行权值初始化2.权值初始化的方法七、正则化六、权值初始化1. 为什么要进行权值初始化2.权值初始化的方法手写太累了,打字吧。。。七、正则化Regularization(正则化)是减小方差的策略,可以通俗理解为减轻过拟合的策略。误差可以分解为:偏差、方差和噪声之和。即误差= 偏差 + 方差 + 噪声偏差度量了学习算法的期望预测与真实结果之间的偏离程度,即刻画了学习算法本身的拟合能力。方差度量了同样大小的训练集的变动所导致的学习性能的变

2021-10-02 13:50:33 233

原创 【ML】神经网络学习笔记_02 反向传播、损失函数

神经网络学习笔记_02四、反向传播1. 相关概念2. 网络计算图3. 反向传播的具体过程4. 梯度下降5. 学习率五、损失函数1. 相关概念2. 两种常见的损失函数3. 交叉熵的详细理解4. softmax函数四、反向传播1. 相关概念2. 网络计算图3. 反向传播的具体过程4. 梯度下降5. 学习率五、损失函数1. 相关概念2. 两种常见的损失函数3. 交叉熵的详细理解4. softmax函数...

2021-09-26 23:46:19 222

原创 【ML】神经网络学习笔记_01 人工神经元、多层感知机、激活函数

神经网络学习笔记_01一、人工神经元1.M-P神经元模型2.感知机(Preceptron)3.感知机的致命缺点二、多层感知机1.多层感知机2.多层感知机的前向传播3.多层感知机的激活函数三、激活函数1.激活函数的两个重要作用2.激活函数需要具备的性质3.常见的激活函数一、人工神经元1.M-P神经元模型可以看出M-P模型就是一个加权求和再激活的过程,能够完成线性可分的分类问题。需要注意的一点时,M-P模型的权值W和偏置b都是人为给定的,所以对此模型不存在"学习"的说法。这也是M-P模型与单层感知机最

2021-09-25 17:56:34 302

原创 【ML】svm学习笔记_01 重要概念:线性可分、超平面、支持向量

三个基础的重要概念

2021-09-23 17:32:01 110

原创 【ML】svm学习 Hard Margin SVM and Soft Margin SVM

Hard Margin SVM and Soft margin SVM本文主要简单介绍了SVM中的Hard Margin SVM(硬间隔分类器)和Soft Margin SVM(软间隔分类器),对于提到的一些简单公式给出了推导说明。内容的主要参考:bilibili 【五分钟机器学习】向量支持机SVM----学霸中的战斗机...

2021-09-21 16:30:30 380 1

原创 约瑟夫环简易版—用python实现静态循环链表

约瑟夫环简易版—用python实现静态循环链表一、题目描述二、原理三、代码一、题目描述有30个人围成一圈,从1到30以此编号,从第一个人开始数(按1,2,3的顺序),每数到第9个的时候,将其踢出,求离开的前10个人的编号。二、原理用列表实现静态的循环数组,列表中的每个元素都是一个字典,相当于一个结点,里面包含了这个结点的标号信息(“name”)以及该结点的下一个结点的地址信息(“p”),每当数到第8个结点的时候,就将下一个结点(也就是第9个结点)的name输出,同时将第九个结点的下一个结点(也就是第

2021-09-17 21:41:10 456

原创 【ML】西瓜书神经网络学习

神经网络学习一、神经元模型二、感知机与多层网络三、反向传播算法(BP算法)1.BP算法的原理2.BP算法的简单代码实现四、全局最小与局部最小一、神经元模型二、感知机与多层网络三、反向传播算法(BP算法)1.BP算法的原理----BP算法是迄今为止最成功的神经网络算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练。BP算法不仅可以用于多层前馈神经网络,还可以用于其他类型的网络,例如训练递归网络。但通常说”BP网络“时,一般是指用BP算法训练的多层前馈神经网络。----下面我们来看

2021-09-15 21:43:33 421 1

原创 【ML】西瓜书决策树学习

决策树学习ps:本篇内容全部基于西瓜书,其中文字基本是西瓜书原文,照着书将重点内容一字一句写下来,确实比通读三五遍收获更大,对内容的理解也更加深刻,即使该方法看似愚拙,其中有些重要的内容有记号标出,一些书上没算出的结果也算了一遍。...

2021-09-12 20:58:36 82

原创 【ML】大一暑假学习成果笔试题考核改错

共28小题1.当数据又缺失值的时候,你认为处理缺失值比较合理的方法是什么?(缺失值举例:泰坦尼克号幸存者数据中,又年龄、性别、职业、是否存活四个特征,但某些样本的职业特征为空)答:如果有缺失值的样本数量相比于样本总数量很小的话,可以直接去除含有缺失值的样本;如果含有缺失值的样本占一定比例的话,我们可以用所缺失特征的均值、众数、中位数等进行填补。在决策树算法中,我们也可以将缺失的特征当作Label来进行分类预测,也可以获得缺失值。2.请简述随机梯度下降和批量梯度下降的区别和各自的优点。答:批量梯度下降

2021-09-07 23:26:18 1194 3

原创 AcWing 797.差分 (C++)

AcWing 797.差分一、题目描述二、解题思路三、Ac代码一、题目描述输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1

2021-08-09 19:47:04 275

原创 AcWing 1530.最短距离 (C++)

AcWing 1530.最短距离 (C++)一、题目描述二、解题思路三、Ac代码一、题目描述一个环形高速公路上有 N 个出口,共有 M 次询问,每次询问你需要回答其中两个出口之间的最短距离是多少。输入格式第一行首先包含一个整数 N,接下来包含 N 个整数 D1,D2,…,DN,其中 Di 是第 i 个出口与第 i+1 个出口之间的距离,DN 是第 N 个出口与第 1 个出口之间的距离。第二行包含一个整数 M,表示询问次数。接下来 M 行,每行包含两个整数,表示询问两个出口之间的最短距离。输出格

2021-08-09 19:44:52 528

原创 【opencv-python】cv2.boundingRect() & cv2.rectangle()

【opencv-python】cv2.boundingRect()& cv2.rectangle()1. `cv2.boundingRect(contour)`函数2. `cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)`函数转自:https://blog.csdn.net/hjxu2016/article/details/77833984矩形边框(Bounding Rectangle)是说,用一个最小的矩形,把找到的形状包起来。还有一个带旋转

2021-06-24 16:07:40 1653

原创 LeetCode 946. 验证栈序列 (C语言)

946. 验证栈序列一、题目描述二、解题思路三、代码一、题目描述二、解题思路这是一道验证栈序列的题,我们需要先创建一个空栈来模拟所给的入栈和出栈序列是否正确。对于入栈序列pushed数组,我们依次将其入栈。每入栈一个元素,我们就和popped数组的当前首元素进行比较,如果入栈的元素与出栈序列的首元素相等的话,就将该元素出栈,并更新出栈序列的首元素。然后再比较现在栈顶的元素是否与更新后的出栈序列的首元素相等,如果相等就继续出栈,直到栈为空或者不相等为止。用while循环来实现该步骤。最后判断栈

2021-06-20 13:42:27 425

原创 【opencv-python】视频处理(4) cv2.VideoCapture.get()函数、cv2.VideoCapture.set()函数

【OpenCV】--视频处理(4)一、cv2.VideoCapture.get()函数1.功能2.语法3.示例二、cv2.VideoCapture.set()函数1.功能2.语法3.参数说明4.示例一、cv2.VideoCapture.get()函数1.功能获取cv2.VideoCapture类对象的属性2.语法retval = cv2.VideoCapture.get( propId )3.示例例如,有一个cv2.VideoCapture 类对象 cvc,则:语句 cvc.get(cv

2021-06-04 23:17:19 2635 3

原创 【opencv-python】视频处理(5) cv2.VideoCapture.grab()函数、cv2.VideoCapture.retrieve()函数

【OpenCV】视频处理(5)一、cv2.VideoCapture.grab()函数二、cv2.VideoCapture.retrieve()函数三、与cv2.VideoCapture.read()函数的联系1.联系2.示例一、cv2.VideoCapture.grab()函数函数cv2.VideoCapture.grab()用来指向下一帧,其语法格式为:retval = cv2.VideoCapture.grab()如果该函数成功指向下一帧,则返回值 retval 为 True。二、cv2.V

2021-06-04 23:15:10 8394 1

原创 【opencv-python】视频处理(3) cv2.VideoCapture.read()函数、cv2.VideoCapture.release()函数

【OpenCV】视频处理(3)一、cv2.VideoCapture.read()函数1.功能2.语法3.返回值二、cv2.VideoCapture.release()函数1.功能2.语法3.示例一、cv2.VideoCapture.read()函数1.功能用于摄像头或视频文件中,捕获帧信息。2.语法retval, image = cv2.VideoCapture.read()3.返回值image 是返回的捕获到的帧,如果没有帧被捕获到,则该值为空。retval 表示帧捕获是否成功,如果成

2021-06-04 21:44:57 6893

原创 【opencv-python】视频处理(2) cv2.VideoCapture.open()函数、cv2.VideoCapture.isOpened()函数

【OpenCV】——视频处理(2) 一、cv2.VideoCapture.isOpened()函数1.功能2.语法3.返回值二、cv2.VideoCapture.open()函数1. 功能2.语法3.参数说明4.返回值三、用于打开视频文件一、cv2.VideoCapture.isOpened()函数1.功能使用cv2.VideoCapture()函数完成摄像头的初始化之后,为了防止初始化发生错误,用cv2.VideoCapture.isOpened()函数来检查初始化是否成功。2.语法retval

2021-06-04 21:32:10 11517 6

原创 【opencv-python】视频处理(1)VideoCapture类、 cv2.VideoCapture()函数

【OpenCV】视频处理(1)VedioCapture类1. VedioCapture类概述2. cv2.VedioCapture()函数VedioCapture类1. VedioCapture类概述OpenCV提供了cv2.VedioCapture类来处理视频。VedioCapture类处理视频的方式非常简单、快捷,而且它既能处理视频文件,又能处理摄像头信息。2. cv2.VedioCapture()函数功能一: 用于打开摄像头并完成摄像头的初始化信息。语法:cap(捕获对象) =

2021-06-04 21:07:40 10635 1

原创 【opencv-python】图像基本处理与操作(2)--图像的显示、截取、保存、size、dtype、astype

OpenCV--图像的显示、保存、size、dtype一、图像的显示及保存1.图像的显示2.将图像的显示步骤封装为函数3.图像的保存二、图像的像素点个数及数据类型1.img.size2.img.dtype 和 img.astype一、图像的显示及保存1.图像的显示img = cv2.imread('lena.jpg')#imshow函数用来显示图片,也可以同时创建多个窗口来显示多张图片cv2.imshow('image', img) #引号内是对该图片起的名字# cv2.imshow('img'

2021-06-03 22:13:25 2427

原创 【opencv-python】图像基本处理与操作(1)--cv2.imread()函数

OpenCV imread函数一、OpenCV概述二、imread函数1.函数功能2.语法3.参数说明4.返回值说明5.示例6.注意事项一、OpenCV概述OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android、Mac OS操作系统上。OpenCV由一系列C函数和少量C++类构成,同时提供Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面

2021-06-03 21:14:41 6232 1

原创 LeetCode 剑指 Offer 59 - II. 队列的最大值 (C语言)

LeetCode 剑指 Offer 59 - II. 队列的最大值一、题目描述二、解题思路三、AC代码一、题目描述二、解题思路本题顾名思义要使用队列进行求解,定义队列为Q,头指针为front,尾指针为rear。若为max_value操作,我们需要对当前队列进行遍历,找到并返回最大值。如果队列为空,则返回-1.若为push_back操作,我们需要让元素从队尾入队,同时尾指针rear后移动一位。若为pop_front操作,我们需要返回当前队列的首元素,同时front指针后移一位。如果当前队列为空

2021-05-31 16:59:30 162

空空如也

空空如也

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

TA关注的人

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