自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 机器学习-聚类算法

我们之前的训练数据都是一个特征对应一个标签,但是对于无监督学习来讲,仅需要数据本身,不需要添加标签。这种聚类算法可以被用于市场划分,新闻消息分组,DNADNADNA检测,天文数据分析。

2024-09-25 17:22:45 1051

原创 机器学习-决策树

我们将要抽样的数据集放在一个袋子里,每次选择其中一个,然后放回继续抽取,最终我们可以得到一个跟原先数据集很相似,但是又不完全相同的新的数据集,这是构造决策树集合的关键步骤。为了说明纯度,我们引入了熵这个概念。我们对之前的决策树进行泛化操作,使得原本仅可以判断分类的决策树也可以实现回归问题,跟决策树相同,仅仅在输出结果时将原本的分类改为分类的重量平均值,实现了对于重量的预测。对于连续的特征值,我们可以尝试不同的阈值,分别计算对应的信息增益,最终计算出最高的那个阈值,并使用这个作为我们的分裂特征。

2024-08-29 01:25:19 1422

原创 计算机网络体系结构

网络,互联网,因特网的区别和关系若干节点和链路之间互连形成网络若干网络通过路由器互连形成互联网因特网是现在最大的互联网因特网与互联网的区别图解因特网发展的三个阶段因特网简介ISP(Internet Service Provide),因特网服务提供者因特网已经发展成为基于ISP的多层次结构的互连网络定义:计算机网络主要是由一些通用的,可编程的硬件互联而成,而这些硬件并非为了实现某个特定的目的(列如:传输数据或者视频信号)。

2024-08-26 21:37:54 1536

原创 LeetCode 145 二叉树的后序遍历

我们在前序遍历中得到的是根左右的顺序,因此我们先将左右的顺序互换,也就是在循环中先放入左子节点,再放入右子节点,这样就会得到根右左的顺序结果,最后再将数组顺序反转就会得到按照后序遍历得到的左右根顺序。该方法与前面的前序遍历类似,仅仅需要改动一些代码顺序即可。该方法在此不作阐述,参考力扣第。,返回其节点值的 后序遍历。给你一棵二叉树的根节点。题的前序遍历思路即可。

2024-08-26 21:36:13 457

原创 LeetCode 94 二叉树的中序遍历

在之前的操作中我们都是遍历到那个节点就将该节点从栈中取出,因此我们对于每个节点的访问和操作是一致的。但是在这次的中序遍历中我们并非是访问到那个节点就对那个节点进行操作,而是先一直访问到最左侧的叶节点,然后对其进行操作。的节点,但是我们首先访问到的节点确是根节点,因此我们需要一个指针指向我们当前访问的节点,并且使用判断是否到了最低端然后进行操作。根据中序遍历的顺序,访问了左节点和根节点,接下来需要访问右节点,也就是使。当指针指到底部时,我们其中的栈顶元素也就是当前节点的值放到数组中。题的前序遍历思路即可。

2024-08-26 21:33:36 993

原创 LeetCode 144 二叉树的前序遍历

我们首先需要想到递归的实现原理,递归的过程中每一次调用将函数的局部变量,参数值和返回地址等压入栈中,在调用结束时从栈顶弹出上次递归的各项参数和值。按照前序遍历的顺序,对根节点进行操作,将其弹出栈放入数组中,同时将其子节点按照右子节点,左子节点的顺序进行入栈操作。之所以按照先右后左的顺序是因为栈是先入后出的,因此在后面出栈的时候就成了根左右的顺序了。在这个递归中需要访问每个节点一遍,因此当前的节点是参数之一,同时需要在每次递归开始时访问当前字子树的根节点,因此需要传入一个数组保存当前被访问结点的值。

2024-08-26 21:24:01 819

原创 LCR 150 逆波兰表达式求值

中缀表达式的计算需要两个栈的辅助,一个在中缀表达式转换成后缀表达式中用来存储运算符,另一个在转换完的后缀表达式的运算中用来存储操作数。后缀表达式计算的方式其实很简单,从左向右依次读取,遇到运算数就放入中缀表达式中,遇到操作符就将其前面的两个运算数进行计算。在最后全部读取完成的时候,我们将栈中的操作符依次弹出,最后得到的结果与上面手算的相同。最后我们可以得到上面的结果,按照左优先原则得到的结果的运算符也是按照从小到大顺序的。,我们按照左优先的原则,如果两个运算符同级,那么左侧的运算符进行优先运算。

2024-08-26 21:22:21 1039

原创 LeetCode 203 移除链表元素

首先删除第一个节点以外的其余节点,最后判断第一个节点是否是需要删除的节点,如果是我们就返回。, 使其指向给定的第一个节点,因为第一个节点也有可能是需要删除的节点,因此我们需要创建一个虚拟的头节点来指向它。如果需要删除,我们就将该节点的下一个节点作为返回值返回给上一个节点的指向。值,假设最后要处理的头节点为要删除的节点,我们直接将它的下一个节点作为结果返回。如上图所示,我们将节点值为 5 的节点的。,接着我们开始向后移动直到头节点为空。的节点作为该链表的第一个节点进行返回。的节点,并返回 新的头节点。

2024-08-26 21:20:18 518

原创 计算机组成原理-输入输出系统

当中断请求寄存器收到一系列中断请求时,会通过内部中线给 CPU 发送中断信号,通过 INT 连接上 INTR 如果CPU 没有关中断,那么会通过 INTA 输出端返回,中断控制器中通过优先权电路得到优先级最高的中断请求信号,经过中断服务寄存器的处理会得到一个向量地址,经过数据总线 CPU 可以得到该向量地址,通过该向量地址 CPU 可以得到中断程序的入口地址。中断隐指令(将 CPU 的指令执行流转移到正确的中断服务程序,实质上是修改 PC 的值,使其指向中断程序的第一条指令)。

2024-08-25 23:06:29 862

原创 计算机组成原理-总线

总线简图总线的物理实现如上图所示,4根信号线组成一根总线,所有的硬件部件都可以通过这根总线传递数据并发送 4 bit 的数据,同一时刻仅可以有一个部件发送数据,但是可以有多个部件接收数据。总线的定义总线是一组可以为多个部件分时共享的公共信息传送路线共享:总线上可以挂接多个部件,各个部件之间相互交换的信息都可以通过这组路线分时共享。分时:同一时刻只允许有一个部件像总线发送信息,如果系统中有多个部件,它们只能分时的向总线发送数据。总线的特征(1)机械特征:尺寸,形状,管脚数,排列顺序。

2024-08-25 22:42:34 984

原创 计算机组成原理-中央处理器

补充:由于取指周期,间址周期,中断周期每条指令都是相同的,因此取指周期通常都是公用的,如果某指令系统中有 n 条机器指令,则 CM 中的微程序的个数至少是 n+1 个(早期的 CPU 和物联网设备的 CPU 并不提供间接寻址和中断的功能)硬件组成:由一个指令控制单元(CU) + 多个处理单元(例如ALU)+ 多个局部存储器 + 一个主存储器,每个执行单元有各自的寄存器组,局部存储器,地址寄存器,不同的执行单元执行同一条指令,处理不同的数据。编码的目标是在保证速度的情况下,尽量的缩短微指令字长。

2024-08-25 22:41:47 1318

原创 计算机组成原理-存储系统

首先计算存储单元的个数,由于有 4 * 8 = 32 = 25 个存储单元,因此我们可以使用 5 位二进制数进行地址的表示,对于高位交叉编制,我们将其前两位作为存储体的体号,后三位代表体内的地址。固态硬盘的基本结构如上图所示,以一个页为基本单位,相当于是磁盘存储器中的每个扇区(也称为块),每个页的大小是 512B ~ 4KB,同时可以将每个闪存芯片中的块看作磁盘中的磁道。在EEPROM基础上发展而来,断电后也可以保存信息,可以进行多次快速擦除重写(由于需要先擦除在写入,因此写的速度慢于读的速度)

2024-08-25 22:39:34 1009

原创 机器学习分类

Field of study that gives computers that ability to learn without being explicitly programmed.used most in real-wold applications目的:学习输入到输出的映射的统计规律回归问题:房价预测目的:从无限多的可能输出中预测一个数字(输入和输出是连续的)分类问题:乳腺癌检查目的:从少量可能的输出中预测类别(输入和输出是离散的)区分:目的:学习数据中的统计规律或潜在结构,相比较于监督学习

2024-08-25 22:37:18 280

原创 机器学习-多元线性回归

在前面的章节中,我们仅仅使用了一个变量x,接下来我们将考虑多个变量的影响。xj​:第j个特征n:表示特征的数目,有n列xi:表示第i个训练示例,也可以称为一组行向量xji​:表示第j个特征的第i个训练示例我们可以将上面的逐个相乘再相加的式子写成一个向量之间点乘的形式,更加简洁。通过引入多个特征,这也被称为多元线性回归。

2024-08-25 22:36:26 1053

原创 机器学习-模型选择与评估

因此我们可以看到对于图像识别问题,前几层所提取的信息,无论是对于车辆识别还是数字识别来讲,都是类似的,我们可以仅调整最后一层的输出,使得符合我们自己训练的数据集。对于逻辑回归问题来讲,当我们提高阈值,那么我们的精准度就会上升,但是召回率就会下降,相反,如果降低阈值,那么我们的精准度就会下降,但是召回率就会上升,因此我们需要通过手动的方式选择一个合适的阈值。第四步,我们将项目部署在服务器上,通过使用其中的数据可以优化系统性能,同时当我们的模型无法很好的工作的时候可以选择重新训练一个新的模型来替代原有的模型。

2024-08-25 22:31:41 642

原创 神经网络-逻辑回归

我们不再采用一条拟合直线而是采用一条SSS型的曲线,也就是右边的sigmoidsigmoidsigmoid函数也称为logisticlogisticlogistic函数。我们仍然会使用一条直线zw→⋅x→bzw⋅xb,然后将这个zzz作为自变量带入sigmoidsigmoidsigmoid函数继续计算,求出最终的结果。w⃗bf。

2024-08-25 22:30:46 1074

原创 机器学习-线性回归

如果将这个图从水平切开,那么也就会得到右上角的图。作为代价函数来判断,最终使得我们得到的。为了更好的看到变化,我们将。,那么就会得到一个3D碗状的等高线图。的值最小,在数学中我们常常将其写为。可以看到在图中训练集的情况下,选择。:输入变量,也称为特征或输入特征。:模型,获取输入并给出对应的输出。的模型来讲,我们需要调整它的参数。使得可以更好的看到图像的不同。:参数,也被称为系数或者权重。训练集:用于训练模型的数据。:输出变量,也称为目标变量。= 第 i 个训练示例。:预测,也称为估计值。

2024-08-25 20:24:17 1022

原创 机器学习-神经网络

我们现在要学习一下为什么需要非线性的激活函数,如果我们仅仅只是使用线性的激活函数,那么无论我们的隐藏层中有多少的神经元我们也无法拟合一个非线性的目标函数。,但是对于正向累计来讲,由于每次计算一个导数都需要遍历后面的节点,因此它的时间复杂度远远大于反向累积,同时由于它不需要存储中间变量,它的空间复杂度很低。我们可以有多个隐藏层,同时每个隐藏层中的具体特征选择不需要我们自己考虑,但是总共的层数和每层的神经元数量需要我们选择。操作,因此我们最后的结果依然是具体的数值而不是概率值,因此需要在最后的结果预测时经过。

2024-08-25 20:23:10 625

原创 机器学习-梯度下降

试想一下,你在一个山坡上寻找一个最快的下坡方法。首先360360360度旋转一周你会找到一个当前最陡峭的方向,沿着这个方向走一步。重复上面的操作,继续旋转360360360度,这个时候你会再次找到一个最陡峭的方向,重复该操作,直到你到达谷底。同时,你可以选择wbw,bwb的值使得你的起始位置不同,从而可能到达不同的谷底,也就是局部最小值。

2024-08-25 20:21:54 1524

原创 计算机组成原理-指令系统

这套方案采用了新的设计方法,CPU首先判断指令的前四位是否为全 1,如果不为全 1,则为三地址指令,如果为全 1,但是前六位不为全 1,则为二地址指令,如果前六位为全1,但是前十一位不为全1,则为一地址指令,如果前十一位全为1,则为零地址指令。如果将4位操作码全部用于3地址操作码,就会有16条指令,但是至少需要将1111留作扩展操作码,即3地址操作码指令为15条。指令的地址字段给出的形式地址不是操作数的真实地址,而是操作数有效的地址所在的存储单元的地址,也就是操作数地址的地址,EA = (A)。

2024-08-24 22:22:59 1102

原创 计算机组成原理-数据的表示与运算

该计算机硬件支持的无符号整数位数有上限,假如机器的字长只有 8 位,那么通用寄存器的存储位数就只有 8 位,也就代表我们最多同时进行8 位的运算。当然我们现在的个人计算机机器的字长通常都是 64 位或者至少 32 位。定义全部二进制位都是数值位,没有符号位,第 i 位的位权是 2i-1n bit 无符号位整数的表示范围是 0 ~ 2n-1,超出会造成溢出,意味着计算机一次无法处理这些数据可以表示的最小的数是全 0 ,可以表示最大的数是全 1运算。

2024-08-24 22:12:34 1412

原创 计算机组成原理-计算机系统概述

计算机发展早期冯诺依曼机特点:计算器由五大部件组成指令和数据以同等的地位存于存储器中,可按照地址寻址指令和数据可用二进制表示指令由操作码和地址码组成存储程序(提前把指令和数据存储到存储器之中)以运算器为中心(输入和输出设备和存储器之间的数据都需要经过运算器)现代计算机的结构其中的主存也就是电脑中的运行内存,辅存就是电脑中的存储内存。比如我的运行内存就是 12 G,而存储内存就是 1TB,像我们平时下载的应用就是在辅存中,当应用启动时就会将从辅存读取到主存中。不

2024-08-24 22:11:49 624

原创 动态规划08-记忆化搜索

给定一个R行C列的矩阵,表示一个矩形网格滑雪场。矩阵中第i行第j列的点表示滑雪场的第i行第j列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:在给定矩阵中,一条可行的滑行轨迹为24−17−2−1。在给定矩阵中,最长的滑行轨迹为25−24−23−−3−2−1,沿途共经过25个区域。

2024-08-24 20:07:54 720

原创 动态规划07-树形 DP

树形DP一般思路,从分析子树入手,最优解通常是和子树根节点u相关的函数,状态计算就是寻找根节点和子节点以及权边的递推关系。编写代码,通常需要dfs,从根到叶,再从叶到根,在合适的时候DP。

2024-08-24 20:07:09 713

原创 动态规划06-状态压缩 DP

关于状态压缩的解释,参考这一篇文章。

2024-08-24 20:00:00 1033

原创 动态规划05-数位统计类 DP

给定两个整数a和b,求a和b之间的所有数字中0∼9的出现次数。例如,a1024b1032,则a和b之间共有9个数102410251026102710281029103010311032其中0出现10次,1出现10次,2出现7次,3出现3次等等…输入包含多组测试数据。每组测试数据占一行,包含两个整数a和b。当读入一行为00时,表示输入终止,且该行不作处理。每组数据输出一个结果,每个结果占一行。

2024-08-24 19:56:20 1010

原创 动态规划04-计数类 DP

一个正整数nnn1n2nk,其中n1≥n2≥≥nkk≥1。我们将这样的一种表示称为正整数n的一种划分。现在给定一个正整数n,请你求出n共有多少种不同的划分方法。共一行,包含一个整数n。共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对1097取模。1≤n≤100057。

2024-08-24 19:55:44 803

原创 动态规划03-区间 DP

设有N堆石子排成一排,其编号为123N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为 1 3 5 2, 我们可以先合并12堆,代价为4,得到 4 5 2, 又合并12堆,代价为9,得到 9 2 ,再合并得到11,总代价为491124;如果第二步是先合并23。

2024-08-24 19:50:31 1096

原创 动态规划02-线性 DP

给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。73 88 1 0第一行包含整数n,表示数字三角形的层数。接下来n行,每行包含若干整数,其中第i行表示数字三角形第i层包含的整数。输出一个整数,表示最大的路径数字和。1≤n≤500−10000≤三角形中的整数≤10000573 88 1 02 7 4 44 5 2 6 530。

2024-08-24 19:49:07 608

原创 动态规划01-背包问题

有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是Vi​,价值是Wi​。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。第一行两个整数NV,用空格隔开,分别表示物品数量和背包容积。接下来有N行,每行两个整数Vi​Wi​,用空格隔开,分别表示第i件物品的体积和价值。输出一个整数,表示最大价值。

2024-08-24 19:48:25 1854

原创 数学知识:筛素数

给定一个正整数n,请你求出1n中质数的个数。共一行,包含整数n。共一行,包含一个整数,表示1n中质数的个数。1<=n<=106。

2024-03-19 13:42:50 1053

原创 二叉表达式树

这与二叉树的结构十分类似,我们可以用根节点表示运算符,使用左右子节点表示操作数,因此我们可以使用二叉树作为表达式的存储结构。对于一颗表达式二叉树,按照前,中,后三种遍历的方式分别可以得到前缀表达式,中缀表达式,后缀表达式。从右向左读取表达式,当遇到操作数时放入栈中,遇到运算符则取出栈顶的两个操作数,构建一个新的子树放入栈中。从左向右读取表达式,当遇到操作数时放入栈中,遇到运算符则取出栈顶的两个操作数,构建一个新的子树放入栈中。将取出的栈顶元素依次于 A 中的元素进行构建子树,每构建一个子树就放回 A 中。

2023-11-30 22:14:33 866 1

原创 LeetCode 28 找出字符串中第一个匹配项的下标

字符串匹配的kmp算法

2023-11-30 22:12:21 1136 1

原创 idea中部署javaweb问题

关于在新版idea中部署javaweb项目

2023-06-19 22:10:33 155

原创 十大经典排序算法

基于C语言实现的十大经典排序算法

2023-05-08 12:13:00 196

原创 java基础学习

对于B站韩顺平老师的课程总结笔记

2023-05-08 12:10:26 326 1

原创 数组翻转问题

最近在y总课上学习了利用reverse实现数组反转,比两层for更加遍历题目:输入一个n,再输入n个整数。将这个数组顺时针旋转kk≤n次,最后将结果输出。旋转一次是指:将最左边的数放到最右边。

2023-04-15 21:36:45 172 1

原创 使用曼哈顿距离公式打印菱形

本来只会暴力循环打印,最近在y总的课上学到了曼哈顿距离公式打印菱形的算法,相较于之情更加便捷。

2023-04-14 23:02:39 385 1

原创 关于多行输入问题

在进行写题时,往往会遇到多行输入问题,因此在这里进行一些方法总结,下面以C语言和java为例分别演示。

2023-04-13 22:14:03 1320 4

空空如也

空空如也

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

TA关注的人

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